Contenido del curso

Manejo de errores y middlewares en FastAPI

Resumen

¿Cómo crear un middleware para el manejo de errores en FastAPI?

El manejo de errores es fundamental al desarrollar aplicaciones con FastAPI, ya que permite identificar y solventar rápidamente los problemas que puedan surgir. En este módulo, aprenderás a crear un middleware específico para capturar errores de forma global, simplificando así su gestión.

Paso 1: Crear la estructura del middleware

Para comenzar a crear tu middleware, sigue estos pasos iniciales:

  1. Crea una carpeta:

    • Llama a esta carpeta Middlewares e incluye un archivo __init__.py para que Python lo reconozca como módulo.
  2. Crear archivo para el manejador de errores:

    • Crea un archivo dentro de la carpeta Middlewares llamado errorHandler.py.

Paso 2: Desarrollar la clase errorHandler

Esta clase será el corazón del middleware que manejará los errores en tu aplicación FastAPI.

from starlette.middleware.base import BaseHTTPMiddleware from fastapi import FastAPI, Request, Response from fastapi.responses import JSONResponse class ErrorHandler(BaseHTTPMiddleware): def __init__(self, app: FastAPI): super().__init__(app) async def dispatch(self, request: Request, call_next): try: return await call_next(request) except Exception as e: return JSONResponse( content={"error": str(e)}, status_code=500 )

Paso 3: Integrar el middleware en tu aplicación

Para que el middleware funcione, es necesario añadirlo al archivo principal de la aplicación.

  1. Modificar main.py:
    • Importa la clase ErrorHandler desde el archivo errorHandler.py.
from middlewares.errorHandler import ErrorHandler from fastapi import FastAPI app = FastAPI() app.add_middleware(ErrorHandler)
  1. Con esta configuración, tu aplicación podrá detectar y manejar errores proporcionando respuestas concisas y útiles.

¿Cómo probar el middleware?

Verificar que el middleware funcione correctamente es fundamental. Prueba eliminar caracteres en funciones críticas o induce errores deliberadamente:

  • Elimina paréntesis o comas en funciones como el método consultar por id.
  • Actualiza la aplicación y utiliza la documentación para verificar la respuesta de los endpoints.
  • Observa cómo el middleware devuelve un código 500, mostrando el error interno del servidor de manera clara.

¿Cómo organizar mejor el proyecto?

Mantener el proyecto ordenado hace más eficiente el desarrollo. Por ejemplo, puedes mover otros middlewares, como el de autenticación que hayas creado previamente.

  • Mover el middleware de autenticación:
    • Crea un archivo jwt-verify.py dentro de la carpeta Middlewares.
    • Traslada el código relacionado al nuevo archivo.
    • Asegúrate de importar las funciones y excepciones desde FastAPI y otros archivos necesarios.
from fastapi import HTTPException, Request from some_module import validateToken # ejemplo de función importada desde otro módulo class JwtVerifyMiddleware(BaseHTTPMiddleware): # Implementación...

Este orden te permitirá tener un mejor control sobre los middlewares de tu aplicación y preparar el terreno para el uso de routers en módulos posteriores.

¡Sigue aprendiendo y reforzando tus habilidades para ser un experto en FastAPI! Con el conocimiento de middleware que has adquirido, estarás mejor preparado para manejar errores y organizar tu proyecto.