Leyendo FastAPI línea por línea
(rumbarum.oopy.io)- 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.
- Incluso la clase base fue creada heredando de Starlette, y
- 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
Requestavanza comoServerErrorMiddleware→ middlewares personalizados →ExceptionMiddleware. - El handler registrado con
@app.exception_handler(Exception)se procesa enExceptionMiddleware, y los demás errores del servidor se procesan enServerErrorMiddleware. - Para evitar que los middlewares bloqueen, vuelve a ejecutar un grupo de hilos por separado.
- Se puede ver que el procesamiento del
Aún no hay comentarios.