HTTP 201 Created
Respuesta de éxito para la creación: ahora existe un nuevo recurso, y Location indica dónde.
Qué significa HTTP 201
HTTP 201 Created se devuelve cuando una solicitud — casi siempre un POST o PUT — creó con éxito un nuevo recurso en el servidor. Las APIs REST lo usan para distinguir “ahora existe algo nuevo” del éxito genérico 200.
Una respuesta 201 adecuada incluye una cabecera Location con la URL del recurso recién creado, y a menudo repite el objeto creado en el cuerpo para que el cliente no necesite un GET de seguimiento.
Causas comunes de las respuestas 201
- Una solicitud POST creó un registro, archivo o cuenta.
- Una solicitud PUT creó un recurso en la URL exacta proporcionada por el cliente.
- Un endpoint por lotes terminó de crear un recurso principal de forma síncrona.
Buenas prácticas para desarrolladores
- Establece la cabecera Location con la URL canónica del nuevo recurso.
- Devuelve la representación creada (con su id asignado por el servidor) en el cuerpo para ahorrar a los clientes un viaje de ida y vuelta.
- Si la creación está en cola en lugar de terminada, devuelve 202 Accepted en su lugar.
- ¿POSTs idénticos repetidos creando duplicados? Considera usar claves de idempotencia y responde 200/409 para las repeticiones.
Ejemplo de respuesta
HTTP/1.1 201 Created
Location: /api/users/1024
Content-Type: application/json
{"id":1024,"name":"New user"}Preguntas frecuentes
¿Cuál es la diferencia entre 200 y 201?
Ambos significan éxito, pero 201 le indica específicamente al cliente que se creó un nuevo recurso. 200 solo significa que la solicitud fue procesada.
¿Es obligatoria la cabecera Location con 201?
Se recomienda encarecidamente: apunta a la URL del recurso recién creado para que los clientes puedan obtenerlo o enlazarlo.
¿Cuándo debería una API devolver 202 en lugar de 201?
Cuando la creación ocurre de forma asíncrona — 202 significa que la solicitud fue aceptada pero el recurso aún no existe.