typestar

Servicios web y acceso a datos

19 pasos en 5 series de Python.

Cómo se ve hoy un servicio web en Python en la práctica. Primero los modelos de Pydantic, porque todo el truco de FastAPI es que la anotación de tipo es la validación, la documentación y la serialización al mismo tiempo.

Luego rutas, inyección de dependencias y handlers async, seguidos de SQLAlchemy para la parte donde los datos tienen que persistir. Diecinueve pasos, y el Bis los conecta en un servicio en vez de dejarte con cuatro bibliotecas y ninguna idea de cómo se encuentran.

Empieza este tour

Modelos de Pydantic

Rutas de FastAPI

Dependencias y async

  • DependenciasDepends inyecta la preparación compartida, y el framework la cachea por petición.
  • Endpoints asyncUn handler async def corre en el event loop, así que los await no lo bloquean.
  • MiddlewareUn middleware envuelve cada petición: tiempos, encabezados, logging.

SQLAlchemy

  • Engine y text de SQLAlchemyEl engine es dueño del pool de conexiones; text() corre SQL plano a través de él.
  • Modelos declarativosUna clase mapeada por tabla, con columnas tipadas.
  • SesionesUna Session es una unidad de trabajo: agregar, hacer flush, confirmar o revertir.
  • selectLa API de consultas 2.0: arma un select, ejecútalo, lee escalares o filas.
  • RelacionesUna clave foránea más relationship te da objetos en ambos lados.

Bis

  • api_service.pyUn servicio FastAPI pequeño: modelos, store inyectado como dependencia, rutas y pruebas.
  • sa_store.pyUna capa de datos con SQLAlchemy: modelos, relaciones, consultas, agregados.

Los otros tours de Python