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
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)
/src/utils/responseHelper.ts)3.2 (Opcional) HttpStatus (/src/utils/HttpStatus.ts)
/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
BaseControllersi usas clases y herenciaAñade validaciones con librerías como
zod,joioclass-validatorIntegra logs con
winston,pinoo alguna solución estructuradaAgrega 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
En tu espacio de GitBook, crea una nueva página o entrada bajo la carpeta de documentación técnica.
Copia y pega el contenido del bloque Markdown superior.
Ajusta si deseas agregar más ejemplos o notas personalizadas.
Organízalo con tu índice de contenido para fácil referencia.
✅ Cómo usar este helper en tu backend
Copia los archivos
responseHelper.tsyHttpStatus.tsa tu carpetasrc/utils/.Importa y usa
responseHelperen todos tus controladores:Opcionalmente usa
HttpStatus.OKen vez de números literales.
Última actualización