2012-06-13 3 views
6

только короткий вопрос:Backbone.save POST вместо PUT

Имея новый экземпляр модели и выдачи model.save() с URL, установленным в /api/store/category, Backbone выдает POST. По моим сведениям, он должен использовать PUT, как упоминалось в этом блоге "PUT or POST: The REST of the Story".

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

ответ

13

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

сохранитьmodel.save ([атрибуты], [опции])
...
Если модель isNew, сохранение будет "создать" (HTTP POST), если модель уже существует на сервере, сохранение будет «обновлением» (HTTP PUT).

И если вы хотите знать, если Backbone должны использовать POST для создания, проверки

  1. PUT vs POST in REST
  2. RESTful web services в Википедии

В свете этих статей я 'd скажите, что в контексте Магической магистрали глаголы правильно используются:

  • сохранение новой модели приводит к изменению в системе, новый URL добавляется, действие не идемпотентна, он должен быть POST,
  • сохранения известной модели заменяет ресурс в заданном URL, то действие является идемпотентным, оно должно быть PUT.
+1

Правильно, поэтому в ответ на запрос на отправку вам нужно отправить вновь созданный идентификатор. – Yaroslav

+0

Спасибо, я уже знал это. Возможно, мой вопрос был немного неточным. Мне было интересно, не позволено ли позвоночник :-) – Jan

+0

@Jan Я изменил свой ответ, чтобы ответить на выбор POST/PUT – nikoshr

Смежные вопросы