Ответ 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, потому что оно является гибким форматом гипермедиа, но достаточно просто понять, не читая слишком много документации.