GUÍA: Códigos HTTP y Respuestas

Esta guía explica cómo usar correctamente los códigos HTTP en tus respuestas JSON y cómo estructurar tus controladores para que sean limpios, consistentes y reutilizables.


1. Formato estándar de respuesta JSON

{
  "status": "success",      // o "error", "not_found"
  "message": "Descripción del resultado",
  "data": { /* contenido */ } // opcional
}

2. Tabla de códigos HTTP y cuándo usarlos

Código
Tipo
Significado
Uso habitual

200

✅ Éxito

OK

Lecturas exitosas

201

✅ Éxito

Created

Recurso creado (POST o PUT)

204

✅ Éxito

No Content

Eliminación sin cuerpo de respuesta

400

❌ Cliente

Bad Request

Datos faltantes o inválidos

401

❌ Cliente

Unauthorized

No autenticado

403

❌ Cliente

Forbidden

Sin permisos

404

❌ Cliente

Not Found

Recurso no encontrado

409

❌ Cliente

Conflict

Conflicto (ej. duplicación)

422

❌ Cliente

Unprocessable Entity

Campos semánticamente incorrectos

500

🔴 Servidor

Internal Server Error

Error inesperado en backend


3. Respuestas reutilizables en backend

3.1 responseHelper (/src/utils/responseHelper.ts)

3.2 (Opcional) HttpStatus (/src/utils/HttpStatus.ts)


4. Ejemplo de uso en un controlador


5. Beneficios de esta estructura

  • ✅ Respuestas consistentes

  • ✅ Código limpio y libre de duplicación

  • ✅ Fácil de escalar y mantener

  • ✅ Ideal para documentación automática con Swagger u otros


6. Siguientes pasos recomendados

  • Implementa un BaseController si usas clases y herencia

  • Añade validaciones con librerías como zod, joi o class-validator

  • Integra logs con winston, pino o alguna solución estructurada

  • Agrega controles de autenticación/autorización (JWT, OAuth)


Desarrollado como guía técnica para backend moderno en Node.js + TypeScript 🛠️

🚀 Cómo usar esta página en GitBook

  1. En tu espacio de GitBook, crea una nueva página o entrada bajo la carpeta de documentación técnica.

  2. Copia y pega el contenido del bloque Markdown superior.

  3. Ajusta si deseas agregar más ejemplos o notas personalizadas.

  4. Organízalo con tu índice de contenido para fácil referencia.


✅ Cómo usar este helper en tu backend

  • Copia los archivos responseHelper.ts y HttpStatus.ts a tu carpeta src/utils/.

  • Importa y usa responseHelper en todos tus controladores:

  • Opcionalmente usa HttpStatus.OK en vez de números literales.

Última actualización