En CouchDB, para crear un nuevo documento que envíe:¿No se utiliza el verbo HTTP PUT para actualizar y no crear contenido?
PUT /albums/70b50bfa0a4b3aed1f8aff9e92dc16a0
no se pone utiliza para actualizar datos y no crearlo?
En CouchDB, para crear un nuevo documento que envíe:¿No se utiliza el verbo HTTP PUT para actualizar y no crear contenido?
PUT /albums/70b50bfa0a4b3aed1f8aff9e92dc16a0
no se pone utiliza para actualizar datos y no crearlo?
El término clave para PUT para mí siempre es idempotent. Mientras que para POST siempre está "agregando otro" elemento al estado del sistema, con PUT la acción es la misma incluso si se realiza varias veces (porque está dirigiendo un elemento).
Ejemplo:
hacer 100 veces poste/álbumes = que terminarían con 100 álbumes diferentes (pero con un mismo contenido)
hacen 100 veces PUT/álbumes/123 = acabaría con un solo álbum con id 123 (con el contenido)
Se usa para ambos. Quoth the RFC:
El método PUT solicita que la entidad adjunta se almacene en el Request-URI proporcionado. Si el URI de solicitud se refiere a un recurso ya existente, la entidad adjuntada DEBERÍA considerarse como una versión modificada de la que reside en el servidor de origen. Si el URI de solicitud no apunta a un recurso existente, y ese URI puede definirse como un recurso nuevo por el agente de usuario solicitante, el servidor de origen puede crear el recurso con ese URI.
Entonces, en otras palabras, inserte si no existe - else, update. – Jnr
PUT
de hecho se utiliza para actualizar el contenido, pero si ya tiene una identificación, se está actualizando. En REST en general, tendrías POST
a /albums
(o lo que sea) para crear un nuevo registro con una identificación aún desconocida. Como tiene una identificación, está actualizando el documento vacío con esa identificación al contenido que está proporcionando.
PUT es crear un nuevo o reemplazar completamente un recurso existente cuando se conoce el URI existente o lo que será el nuevo URI. POST es para actualizar partes de un recurso existente, o para crear un nuevo recurso cuando el servidor tiene que asignar el nuevo URI. Es así de simple. Tanto PUT como POST se usan para crear y actualizar, no se trata de crear o actualizar, sino de si ya conoce el URI o si necesita que el servidor se lo asigne.
POST no necesita agregar nada. –
Igualmente y para aclarar, especialmente haciendo referencia a la respuesta de Victor, PUT es una creación en la primera llamada y una actualización posterior. Entonces, sigue siendo idempotente –