Как редактировать ресурс? - PullRequest
2 голосов
/ 08 августа 2010

Простите за простой вопрос, но, похоже, большинство поисков пытаются сказать мне, какие методы предназначены для каких действий.Например, создание и редактирование - это PUT, создание из множественного числа (статьи) - это POST и так далее. (Если вы не согласны с этим, я просто использовал его в качестве примера.:)

С учетом вышесказанного, как начать редактирование ресурса?Чтобы создать ресурс с известным URL-адресом, вы должны предварительно сформировать GET для несуществующего URL-адреса.Например, GET:mysite/resource_one.Затем возвращается форма, и форма отправляет PUT по тому же адресу, и bam, ресурс создан.

Теперь, как вы редактируете этот же ресурс?С 4 методами, разработанными для CRUD, у меня возникают проблемы, потому что я могу думать только об одном.Чтобы перейти на новый ресурс .Например, GET:mysite/resource_one/edit.Затем он представляет форму с существующими данными, вы редактируете ее, а затем данные отправляются в GET:mysite/resource_one.Это кажется мне странным в системе, которая, как представляется, предназначена для предварительного формирования полного CRUD на ресурсе, не покидая упомянутого ресурса.

Итак ... каков правильный метод?Я имею в виду, если GET:mysite/resource_one/edit правильно, то почему бы не GET:mysite/resource_one/delete, GET:mysite/resource_two/create и т. Д.

Ответы очень ценятся!

1 Ответ

4 голосов
/ 08 августа 2010

URL всегда представляет ресурс, а не действие. Таким образом, хотя mysite/resource_one/edit может быть правильным URL-адресом для страницы, которая инициирует редактирование ресурса, он не является частью самого REST API, а является частью веб-приложения, которое использует этот REST API для управления этим ресурсом. Более того, в этом примере mysite/resource_one может привести к путанице в представлении ресурса.

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

Чтобы обновить существующий ресурс, вы используете PUT в URL-адресе ресурса, причем тело запроса содержит полное или частичное обновление данных ресурса.

...