22 puntos por rumbarum 2023-08-21 | Aún no hay comentarios. | Compartir por WhatsApp
  1. Vale la pena intentar seguir el stack trace con Pycham.
    1. Puedes verificar qué valores tienen las variables en uso y, si es una instancia, qué atributos tiene.
  2. Parece que FastAPI no puede existir sin Starlette.
    1. Incluso la clase base fue creada heredando de Starlette, y Request, Response, Router, Middleware, etc., también están construidos sobre Starlette.
    2. Terminas viendo más código de Starlette que de FastAPI.
    3. Da la impresión de que también se podría crear una app con Starlette sin FastAPI.
  3. Se siente más claro el rol de Uvicorn ↔ Starlette ↔ FastAPI.
    1. Uvicorn: interfaz de comunicación externa
    2. Starlette: interfaz del funcionamiento interno del servidor
    3. 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.)
  4. También entendí un poco mejor el middleware.
    1. Se puede ver que el procesamiento del Request avanza como ServerErrorMiddleware → middlewares personalizados → ExceptionMiddleware.
    2. El handler registrado con @app.exception_handler(Exception) se procesa en ExceptionMiddleware, y los demás errores del servidor se procesan en ServerErrorMiddleware.
    3. Para evitar que los middlewares bloqueen, vuelve a ejecutar un grupo de hilos por separado.

Aún no hay comentarios.

Aún no hay comentarios.