2012-06-13 18 views
6

a pocos pregunta:Backbone.save la POST en lugar de PUT

Tener la nueva instancia de un modelo y la emisión de un conjunto de direcciones URL con model.save() a /api/store/category, Backbone emite un POST. De acuerdo con mi conocimiento, debería usar PUT, como se menciona en esta publicación de blog "PUT or POST: The REST of the Story".

¿Quién tiene razón? ¿BB o el autor de este artículo?

Respuesta

13

De acuerdo con Backbone documentation, guardar un nuevo modelo dará como resultado una solicitud POST, y al guardar un modelo existente (que tenga una identificación) emitirá una solicitud PUT.

Guardarmodel.save ([atributos], [Opciones])
...
Si el modelo isNew, con los puños será una "crear" (HTTP POST), si el Ya existe el modelo en el servidor, el guardado será una "actualización" (HTTP PUT).

Y si se preguntan si Backbone debe utilizar un POST para la creación, comprobar

  1. PUT vs POST in REST
  2. RESTful web services Wikipedia

A la luz de estos artículos, me Diría que, en el contexto de Backbone, los verbos se usan correctamente:

  • ahorro de un nuevo modelo provoca un cambio en el sistema, se añade una nueva dirección URL, la acción no es idempotente, debe ser un POST,
  • ahorro de un modelo conocido reemplaza un recurso a una determinada URL, el la acción es idempotente, debería ser un PUT.
+1

Correcto, por lo tanto, en la respuesta a la solicitud de publicación debe enviar de nuevo la nueva identidad. – Yaroslav

+0

Gracias, ya lo sabía. Tal vez mi pregunta fue un poco inexacta. Me preguntaba si backbone está fuera de lo normal ;-) – Jan

+0

@ Jan Modifiqué mi respuesta para responder a la elección de POST/PUT – nikoshr

Cuestiones relacionadas