- Vale la pena intentar seguir el stack trace con Pycham.
- Puedes verificar qué valores tienen las variables en uso y, si es una instancia, qué atributos tiene.
- Parece que FastAPI no puede existir sin Starlette.
- Incluso la clase base fue creada heredando de Starlette, y
Request, Response, Router, Middleware, etc., también están construidos sobre Starlette.
- Terminas viendo más código de Starlette que de FastAPI.
- Da la impresión de que también se podría crear una app con Starlette sin FastAPI.
- Se siente más claro el rol de Uvicorn ↔ Starlette ↔ FastAPI.
- Uvicorn: interfaz de comunicación externa
- Starlette: interfaz del funcionamiento interno del servidor
- FastAPI: interactúa con Uvicorn añadiendo sobre Starlette la conveniencia para escribir funciones de endpoint (
Depends(), validación de parámetros mediante Pydantic, etc.)
- También entendí un poco mejor el middleware.
- Se puede ver que el procesamiento del
Request avanza como ServerErrorMiddleware → middlewares personalizados → ExceptionMiddleware.
- El handler registrado con
@app.exception_handler(Exception) se procesa en ExceptionMiddleware, y los demás errores del servidor se procesan en ServerErrorMiddleware.
- Para evitar que los middlewares bloqueen, vuelve a ejecutar un grupo de hilos por separado.
Aún no hay comentarios.