Qué vas a construir
Una API REST funcional para Cargo Track con autenticación, documentación automática en Swagger y un frontend en Streamlit con sidebar y tabs para gestionar envíos, clientes y conductores.
Objetivos de aprendizaje
Al terminar este taller vas a poder:
- Crear y organizar una API REST con FastAPI, definiendo rutas, métodos HTTP y respuestas correctas para cada operación
- Modelar datos con SQLModel y diseñar relaciones entre tablas (uno-a-muchos y muchos-a-muchos)
- Validar datos de entrada con Pydantic y devolver errores claros cuando la validación falla
- Proteger endpoints con autenticación basada en API keys y entender cómo extenderlo con JWT
- Manejar errores de forma consistente usando los códigos HTTP adecuados para cada situación
- Explorar y probar la API desde la documentación automática que genera FastAPI con Swagger
- Gestionar entornos virtuales de Python para aislar dependencias por proyecto
- Conectar un frontend a los endpoints del API usando Streamlit, separando módulos con sidebar y tabs
Prerrequisitos / Stack
- Python 3.12
- FastAPI 0.115
- SQLModel 0.0.21
- SQLite (incluido con Python) o PostgreSQL 16 (opcional)
- Uvicorn 0.30
- Streamlit 1.40
- httpx 0.27
- python-jose 3.3 (para JWT opcional)
Contenido del taller
-
01
Prerrequisitos
-
02
Entornos virtuales
-
03
El sistema Cargo Track
-
04
Modelos de datos con SQLModel
-
05
Relaciones entre modelos
-
06
La base de datos
-
07
Primeros endpoints
-
08
Validación con Pydantic
-
09
Crear y actualizar envíos
-
10
Eliminar y cambiar estados
-
11
Manejo de errores
-
12
Autenticación con JWT
-
13
Swagger: tu API documentada
-
14
Streamlit: estructura y conexión
-
15
Streamlit: módulo de Envíos
-
16
Streamlit: módulo de Clientes y Conductores
-
17
Streamlit: rastreo de un envío
-
18
Streamlit: pulir la experiencia de usuario
-
19
Cierre