Вопрос по post, backbone.js, put – Backbone.save POST вместо PUT

6

просто короткий вопрос:

Наличие нового экземпляра модели и выдачаmodel.save() с URL-адресом/api/store/category, Backbone выдает POST. Насколько мне известно, он должен использовать PUT, как указано в этом«PUT или POST: ОТДЫХ истории» Сообщение блога.

Кто прав? BB или автор этой статьи?

Ваш Ответ

1   ответ
13

Основная документациясохранение новой модели приведет к запросу POST, а сохранение существующей модели (имеющей идентификатор) будет выдавать запрос PUT.

save model.save([attributes], [options])
...
If the model isNew, the save will be a "create" (HTTP POST), if the model already exists on the server, the save will be an "update" (HTTP PUT).

И если вам интересно, если Backboneshould используйте POST для создания, проверьте

PUT vs POST in REST RESTful web services on Wikipedia

В свете этих статей я бы сказал, что в контексте Backbone правильно используются глаголы:

saving a new model causes a change in the system, a new URL is added, the action is not idempotent, it should be a POST, saving a known model replaces a resource at a given URL, the action is idempotent, it should be a PUT.
Спасибо, я это уже знал. Может быть, мой вопрос был немного неточным. Мне было интересно, если позвоночник является нестандартным ;-) Jan
@ Ян Я изменил свой ответ, чтобы ответить на выбор POST / PUT
Правильно, поэтому в ответ на запрос поста вы должны отправить вновь созданный идентификатор обратно.

Похожие вопросы