POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Manejo elegante de 404 y 500 en Django con respuestas JSON personalizadas

Gestión elegante de errores 404 y 500 en Django con respuestas JSON personalizadas

Publicado el 30/08/2025

Al construir APIs RESTful con Django, las páginas de error por defecto 404 Not Found y 500 Internal Server Error devuelven respuestas en HTML, lo que no es ideal para clientes API que esperan JSON. En este artículo explico cómo sustituir los controladores de error de Django mediante handler404 y handler500 para devolver respuestas JSON consistentes y estructuradas.

Por qué personalizar los manejadores de error: Django por defecto muestra plantillas HTML para errores 404 y 500. Para consumidores de APIs esto no es útil. En su lugar se debe devolver una respuesta JSON uniforme, por ejemplo span abierto { status: Failed, message: The requested resource was not found } span cerrado o en caso de error de servidor span abierto { status: Failed, message: Internal Server Error } span cerrado.

Configurar manejadores de excepción personalizados: crea un archivo llamado api_services/custom_exceptions.py dentro de tu carpeta de servicio API. En ese archivo define una clase CustomException con dos métodos estáticos: custom_404_view que devuelve JsonResponse con un diccionario con status y message y status HTTP 404, y custom_500_view que devuelve JsonResponse con status HTTP 500 y mensaje interno. Ejemplo conceptual: JsonResponse({ status: Failed, message: The requested resource was not found }, status=404) y JsonResponse({ status: Failed, message: Internal Server Error }, status=500). Usamos JsonResponse porque funciona fuera de Django REST Framework y garantiza salida JSON válida.

Registrar los manejadores en urls.py: en el archivo urls.py principal del proyecto importa handler404 y handler500 y asigna los métodos de CustomException: handler404 = CustomException.custom_404_view y handler500 = CustomException.custom_500_view. Asegúrate de tener tu listado de urlpatterns con las rutas de la API y de adjuntar los manejadores personalizados para que Django los invoque globalmente.

Importante: desactivar modo depuración: cuando DEBUG = True Django muestra páginas de depuración detalladas que anulan tus manejadores personalizados. Para que tus handlers JSON funcionen establece en settings.py DEBUG = False y configura ALLOWED_HOSTS según corresponda. Con DEBUG en False Django llamará a custom_404_view y custom_500_view en vez de mostrar páginas HTML.

Probar la configuración: inicia el servidor con el comando python manage.py runserver. Accede a un endpoint inválido como GET https://127.0.0.1:8000/api/v1/use y deberías recibir la respuesta JSON limpia { status: Failed, message: The requested resource was not found }. Para probar errores 500 puedes lanzar temporalmente una excepción en una vista y verificar que la respuesta sea { status: Failed, message: Internal Server Error }.

Buenas prácticas y opciones avanzadas: considera centralizar la estructura de error para incluir campos adicionales como code, details o trace_id si lo necesitas para trazabilidad. Si usas Django REST Framework puedes integrar respuestas en formato Response y Serializers para mensajes de error más ricos. Además contempla registrar los errores en un servicio de monitorización y enviar alertas para errores 500.

Beneficios de este enfoque: clientes API reciben siempre JSON lo que mejora la consistencia y la experiencia de usuario, las aplicaciones frontend pueden manejar errores de forma programática y tu API mantiene un formato uniforme tanto para éxitos como para fallos.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones tecnológicas integrales. Ofrecemos software a medida, aplicaciones a medida, proyectos de inteligencia artificial e ia para empresas, servicios de ciberseguridad y servicios cloud aws y azure. También brindamos servicios inteligencia de negocio, implementación de power bi y desarrollo de agentes IA personalizados para automatizar procesos y mejorar la toma de decisiones.

Cómo Q2BSTUDIO puede ayudar en tu API y gestión de errores: nuestros equipos pueden implementar manejadores de error personalizados, integrar logging, monitorización y soluciones de alta disponibilidad en AWS y Azure, y asegurar que las respuestas de tus APIs cumplan con los estándares de consumo de clientes y aplicaciones móviles. Además ofrecemos consultoría en inteligencia artificial, agentes IA y power bi para enriquecer tus dashboards y procesos con analítica avanzada.

Palabras clave para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Contacta a Q2BSTUDIO para diseñar soluciones a medida que incluyan manejo adecuado de errores, seguridad, escalabilidad y capacidades de inteligencia artificial adaptadas a tu negocio.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio