Planear una API de lectura sobre Sakila
Objetivos
Vas a convertir preguntas de análisis en rutas pequeñas con un contrato verificable y permisos mínimos.
Concepto
Un endpoint útil responde una necesidad concreta y define qué forma de datos devuelve. Antes de codificar, anota el método, la ruta, los parámetros, los estados de error y las columnas que salen. Para customer, la unidad es un cliente por fila; para payment, es un pago por fila. En el resumen, la unidad cambia a un grupo por staff_id.
La API final lee el esquema original sakila con FastAPI, SQLAlchemy y MySQL. Solo expone customer y payment; no necesita aceptar SQL libre. El manual oficial Sakila describe la instalación, el esquema y sus datos. El proyecto se ejecuta localmente y no incluye dump ni datos en su descarga.
Ejemplo
Este es el contrato que implementarás en el proyecto:
| Método | Ruta | Parámetros | Uso y estado principal |
|---|---|---|---|
GET | /health | — | Responde 200 con { "status": "ok" }; no prueba MySQL. |
GET | /customers/{customer_id} | ID positivo | 200 con cuatro campos o 404 si no existe. |
GET | /customers | limit, offset, active | Lista acotada y ordenada por customer_id. |
GET | /payments | limit, offset, staff_id, importes | Lee pagos con filtros validados. |
GET | /payments/summary | staff_id opcional | Cuenta y suma pagos por identificador de staff. |
Todos los parámetros se validan antes de consultar. La lista tiene máximo 50 filas por petición. El esquema de respuesta omite columnas que no necesita, como el correo. staff_id identifica a quien procesó un pago en esta muestra; no demuestra ubicación ni desempeño.
Práctica guiada
Para cada ruta, escribe en una tabla pequeña el método, la fila que representa un elemento, los campos de salida y el estado esperado si no encuentra coincidencias. Comprueba que ninguna ruta modifica datos.
Reto
Agrega una condición de aceptación para los errores y otra para proteger la cuenta MySQL. Ambas deben poder verificarse por otra persona.
Intenta el reto antes de consultar las pistas.
Quiz
Comprobación
El contrato, los límites y el permiso de solo lectura están definidos. Descarga el paquete para conectar y ejecutar la implementación revisable.