~/academy/api $ cat README.md
APIs con Python y FastAPI
Crea APIs rápidas, validadas, probadas y listas para Docker.
// acerca del curso
HTTP, rutas, Pydantic, SQLAlchemy, autenticación, pruebas con pytest y despliegue en contenedor.
// lo que aprenderás
FastAPIPydanticSQLAlchemypytestSeguridad de APIs
// temario · 7 lecciones
- 01
Qué es una API: HTTP, métodos, códigos y JSONEntiendes qué es una API web y cómo se comunican cliente y servidor con HTTP: la anatomía de una petición y una respuesta, los métodos, los códigos de estado y el formato JSON. Practicas con curl antes de escribir tu propia API.13 min audio
- 02
Tu primera API con FastAPIInstalas FastAPI en un entorno virtual, levantas tu primera API con el servidor de desarrollo, defines rutas con parámetros, respondes errores con HTTPException y exploras la documentación interactiva que FastAPI genera sola en /docs.12 min audio
- 03
Parámetros, validación y modelos con PydanticRecibes datos de forma segura: parámetros de ruta y de consulta con restricciones, cuerpos JSON validados con modelos de Pydantic v2, modelos distintos para crear, actualizar y responder, y validadores propios. Completas un CRUD de productos con los códigos de estado correctos.12 min audio
- 04
Base de datos con SQLAlchemy: de SQLite a PostgreSQLConectas tu API a una base de datos real con SQLAlchemy 2: defines tablas como clases con Mapped y mapped_column, abres sesiones por petición con dependencias de FastAPI, haces consultas con select() y manejas transacciones. Empiezas con SQLite y cambias a PostgreSQL con una variable de entorno.12 min audio
- 05
Autenticación básica y seguridadProteges tu API: guardas contraseñas con hash Argon2, emites tokens JWT con expiración, proteges rutas con dependencias y roles, configuras CORS correctamente y mantienes los secretos fuera del código con variables de entorno.12 min audio
- 06
Pruebas con pytest y el cliente de FastAPIEscribes pruebas automáticas para tu API con pytest y TestClient: verificas códigos de estado, cuerpos y efectos en la base, aíslas cada prueba con una base SQLite en memoria mediante dependency_overrides, parametrizas casos inválidos, pruebas rutas protegidas y lees los fallos de pytest.12 min audio
- 07
Empaquetar en Docker y documentar tu APILlevas tu API a un contenedor: escribes un Dockerfile eficiente y seguro, lo construyes y ejecutas con variables de entorno, levantas API y PostgreSQL juntos con Docker Compose y completas la documentación OpenAPI y el README para que otros puedan usarla.13 min audio