URL-адрес REST для создания и редактирования форм

в SO были неплохие потоки.

Это плохой URL-адрес REST? Понимание REST: глаголы, коды ошибок и аутентификация

Я вижу хороший ресурс здесь.

Вопрос заключается в том, как представлять URL-адреса создания и редактирования форм. В ссылках So явно не сказано, что, но ссылки на микроформаты показывают

GET /people/new  

возвращает форму для создания новой записи

GET /people/1/edit

вернуть форму для редактирования первой записи

Не слишком религиозный об использовании глаголов в URL-адресе, задайтесь вопросом, есть ли лучший вариант для представления того же самого.

Ответ 1

Причина, по которой вы не найдете консенсуса в отношении структуры URL-адреса, заключается в том, что, когда разработчики начинают понимать REST, они узнают, что структура не имеет отношения к клиенту и является просто функцией реализаций аэстетики и серверных фреймворков.

Однако существует стандартизированный подход к достижению целей, которые вы пытаетесь достичь.

GET /people/1
Content-Type: application/vnd.hal+xml
=>
<resource rel="self" href="/people/1">
  <link rel="edit" href="/people/1/editform"/>
  <link rel="urn://vnd.acme.rels/create" href="/people/createform"/>
  <name>Joe Foo</name>
</resource>

Встраивая ссылки в ответ, клиент может обнаружить URI, необходимый для выполнения желаемого действия. Однако, чтобы обнаружить URI, клиент должен иметь предварительное знание отношений связей ( "rel" ), которые используются. В этом случае мы использовали "редактирование", так как у него есть четко определенное поведение, описанное в IANA Link Registry. Другая ссылка для доступа к форме создания, насколько мне известно, не имеет стандартного имени, поэтому я позволил создать однозначное отношение ссылок.

В качестве побочного примечания мне пришлось использовать приложение типа мультимедиа /hal + xml, потому что оно является гибким форматом гипермедиа, но достаточно просто понять, не читая слишком много документации.

Ответ 2

Там недавно опубликован информационный RFC, который продвигает отношения ссылок "create-form" и "edit-form". Более подробную информацию можно найти на http://tools.ietf.org/html/rfc6861.