DÍA 16Proyecto final: API de lectura Sakila · Python Backend y APIs para Datos

Revisa las pruebas, las respuestas y los criterios de aceptación de tu capstone FastAPI.

Día 16 25 minIntermedio

Base oficial Sakila de MySQL

Los tests usan SQLite con fixtures sintéticos; la ejecución local consulta el Sakila instalado aparte.

Validar y entregar la API de lectura Sakila

Objetivos

Vas a verificar el comportamiento esperado, revisar los límites de seguridad y reunir una entrega reproducible.

Concepto

Una API que devuelve 200 en una llamada no está validada por completo. También hay que revisar una búsqueda ausente, límites numéricos, la respuesta pública, los métodos admitidos y los permisos de la cuenta MySQL. Los tests automatizados capturan parte de ese contrato con fixtures sintéticos; la ejecución local contra Sakila confirma el montaje real del estudiante.

Repite py -m pytest -q y compara una ruta con /docs. El paquete incluye datos y resultados de prueba solo dentro del fixture en memoria, instrucciones, código de referencia y esta rúbrica. No incluye dump, .env ni credenciales.

Ejemplo

El README del proyecto contiene el contrato y la rúbrica. Antes de entregar, revisa esta lista:

  1. GET /health responde 200 con {"status":"ok"} sin consultar MySQL.
  2. GET /customers/{id} devuelve los cuatro campos esperados o 404.
  3. Listas y pagos se ordenan y respetan límites; parámetros inválidos devuelven 422.
  4. El resumen contiene una fila por staff_id y sus importes reconcilian con la consulta usada.
  5. POST /customers devuelve 405; no hay rutas POST, PUT, PATCH ni DELETE sobre Sakila.
  6. Los tests usan SQLite y sus nombres son ficticios; no se citan como resultados de la muestra.
  7. SHOW GRANTS confirma que sakila_reader solo lee sakila.*; .env permanece fuera de Git.

Práctica guiada

Ejecuta la suite, anota el total de pruebas y luego verifica manualmente /health, una lista y un cliente inexistente en /docs. Revisa los grants con MySQL y confirma que .env no aparece en el estado de Git.

Reto

Entrega el proyecto con una breve nota que identifique endpoints probados, resultados de tests, permisos y límites; no publiques contraseñas ni datos personales.

Intenta el reto antes de consultar las pistas.

Quiz

1. ¿Qué fuente usan los tests automatizados del capstone?
2. ¿Qué condición confirma una cuenta de aplicación de solo lectura?
3. ¿Qué debe incluir una entrega reproducible?

Comprobación

Al terminar, otra persona puede instalar la API, comprobar el contrato con tests y ejecutar las consultas de lectura contra Sakila local. El curso no presenta el ejemplo como un backend listo para producción.

TU PROGRESO

Cargando estado…