create api rest post put

api - create - wp json post



REST-No debería PUT=Crear y POST=Actualizar (4)

No debe usarse PUT para Create y POST utilizado para Update ya que PUT es idempotente.

De esta forma, múltiples PUT para el mismo pedido colocarán solo un pedido?


Depende ... usted puede crear / actualizar sitios / registros con ambos. Cuando el cliente especifica el URI, entonces PUT es el camino a seguir. Por ejemplo, cualquier editor de código como Dreamweaver, PUT es el protocolo correcto para usar.

también eche un vistazo a este hilo: put vs post in rest


La diferencia es que un PUT es para un recurso conocido, y por lo tanto usado para actualizar, como se indica aquí en rfc2616.

La diferencia fundamental entre las solicitudes POST y PUT se refleja en el significado diferente de Request-URI. El URI en una solicitud POST identifica el recurso que manejará la entidad adjunta. Ese recurso puede ser un proceso de aceptación de datos, una puerta de enlace a algún otro protocolo o una entidad separada que acepta anotaciones. Por el contrario, el URI en una solicitud PUT identifica la entidad adjunta a la solicitud: el agente de usuario sabe qué URI está destinado y el servidor NO DEBE intentar aplicar la solicitud a algún otro recurso.

Sin embargo, sí veo de dónde vienes según los nombres mismos.

Normalmente miro POST como debería ser el URI que manejará el contenido de mi solicitud (en la mayoría de los casos, los params como valores de formulario) y así crear un nuevo recurso, y PUT como el URI que es el tema de mi solicitud (/ usuarios / 1234), un recurso que ya existe.

Creo que la nomenclatura se remonta un largo camino, considere la web temprana. Es posible que desee POST su mensaje a un tablero de mensajes y luego PUT contenido adicional en su mensaje en una fecha posterior.


No hay correspondencia estricta entre los métodos HTTP y CRUD. Esta es una convención adoptada por algunos marcos, pero no tiene nada que ver con las restricciones REST.

Una solicitud PUT le pide al servidor que reemplace lo que está en el URI dado con la representación adjunta, ignorando por completo los contenidos actuales. Una buena analogía es el comando mv en un shell. Crea el nuevo archivo en el destino si no existe, o reemplaza lo que exista. En cualquier caso, ignora por completo lo que está allí. Puede usar esto para crear, pero también para actualizar algo, siempre que envíe una representación completa.

POST le pide al recurso de destino que procese la carga útil de acuerdo con reglas predefinidas, por lo que es el método a utilizar para cualquier operación que no esté ya estandarizada por el protocolo HTTP. Esto significa que un POST puede hacer lo que quiera, siempre que no esté duplicando la funcionalidad de otro método, por ejemplo, utilizando POST para la recuperación cuando debería usar GET , y que lo documente correctamente.

Por lo tanto, puede usar ambos para crear y actualizar, dependiendo de las circunstancias exactas, pero con PUT debe tener una semántica consistente para todo en su API y no puede hacer actualizaciones parciales, y con POST puede hacer lo que quiera, como Mientras documente cómo funciona exactamente.


PUT debe usarse para crear si, y solo si es posible, un URI del nuevo recurso conocido para un cliente. Es posible que el servicio publique una nueva URI en la representación de recursos. Por ejemplo, el servicio puede proporcionar algún tipo de formulario de envío y especificar el URI de acción en él, que puede ser un URI prepoblado del nuevo recurso. En este caso sí, si la solicitud PUT inicial crea recursos con éxito después de la solicitud PUT solo la reemplazará.

Está bien usar POST para actualizaciones, nunca se dijo que POST es para operaciones de "creación" solamente.