201

Created

Cuando nace algo nuevo en el servidor. Como un chef orgulloso de su plato recién creado.

Success

🎂 ¿Qué narices es esto?

El código 201 Created es el "¡felicidades, has creado algo!" de la web. Es como cuando terminas un puzzle y alguien te dice "¡muy bien!" pero específicamente porque has añadido algo nuevo al mundo, no solo porque todo funciona.

Mientras que el 200 OK es para cuando recuperas algo que ya existía, el 201 es para cuando has creado algo completamente nuevo. Es la diferencia entre abrir la nevera y encontrar una cerveza (200) vs. hacer la cerveza desde cero (201). Ambos están bien, pero uno implica creación.

El 201 se usa típicamente cuando:

  • Creas un nuevo usuario con POST /users
  • Subes un archivo que no existía antes
  • Publicas un post nuevo en un blog
  • Generas un recurso con PUT en una URL nueva
  • Cualquier operación que resulte en algo nuevo

🏗️ Dato curioso

El 201 debería incluir un header Location apuntando al recurso recién creado. Es como darte las coordenadas de tu casa nueva después de construirla. Sin Location, es como decir "te he hecho una casa" pero no decirte dónde está.

Lo bonito del 201 es que es semánticamente específico. No es solo "todo bien", es "todo bien Y además has creado algo". Es el equivalente web de firmar un acta de nacimiento.

🔧 Cómo implementar esto

📤 Para clientes

  1. Envía petición de creación: POST o PUT con datos nuevos.
  2. Incluye contenido necesario: JSON, formulario, archivo, etc.
  3. Recibe el 201: ¡Tu creación fue exitosa!
  4. Lee el header Location: Ahí está tu nuevo recurso.
  5. Usa la respuesta: Puede incluir el recurso creado.

🛠️ Para servidores

  1. Valida los datos: Comprueba que se puede crear.
  2. Crea el recurso: Almacena en base de datos, filesystem, etc.
  3. Genera ID único: Si es necesario.
  4. Incluye Location header: URL del recurso creado.
  5. Responde con 201: Y opcionalmente el recurso completo.

Problemas típicos con 201

  • Datos incompletos o inválidos:
    El cliente envió datos incorrectos para la creación
    Si los datos no cumplen los requisitos, no se puede crear el recurso.
  • Recurso ya existe:
    El servidor devuelve 201, pero el recurso ya estaba presente (confusión con 409)
    Debe garantizarse que el recurso sea realmente nuevo.

🚀 Respuesta rápida para emergencias

🔥 Si estás implementando 201:
1. Verifica que los datos sean válidos
2. Asegúrate de que el recurso sea único antes de la creación
3. Devuelve el Location header
🎯 Truco ninja:
Considera devolver el recurso completo en la respuesta para que el cliente tenga acceso inmediato.