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

Instala dependencias, configura secretos locales e inicia FastAPI contra Sakila.

Día 15 25 minIntermedio

Base oficial Sakila de MySQL

El dump se descarga e instala por separado en MySQL local; no viene dentro del proyecto.

Preparar y ejecutar el proyecto API Sakila

Objetivos

Vas a crear un entorno local con dependencias fijas, una cuenta MySQL de solo lectura y variables privadas fuera del código.

Concepto

Un entorno virtual mantiene los paquetes del proyecto separados de otros programas Python. requirements.txt fija las versiones con las que se preparó el capstone. El archivo .env.example muestra nombres de variables; la copia .env contiene la clave local y permanece ignorada por Git.

El paquete no instala MySQL ni carga Sakila por su cuenta. Sigue la guía oficial de instalación de Sakila en una instancia de práctica. El usuario de la API debe ser el que creaste con permiso SELECT, nunca root.

Ejemplo

Descarga el paquete ejecutable de la API Sakila o revisa el README completo del proyecto. Desde su carpeta, en Windows:

El paquete de referencia Sakila para Backend incluye la guía de descarga, instalación y licencia. El dump original se obtiene desde el sitio oficial de MySQL.

py -3.11 -m venv .venv
.venv\Scripts\Activate.ps1
py -m pip install -r requirements.txt
Copy-Item .env.example .env
py -m pytest -q
py -m uvicorn app.main:app --reload

Edita .env antes de llamar a un endpoint que consulte MySQL. Para macOS/Linux, el README contiene los comandos equivalentes. Abre http://127.0.0.1:8000/docs, ejecuta /health y después prueba una ruta de lectura como /customers?limit=5. /health solo verifica que la aplicación responde; un fallo de la base se descubre al solicitar datos.

Práctica guiada

  1. Ejecuta primero los tests: no necesitan MySQL y usan SQLite temporal.
  2. Inicia el servidor después de configurar .env y Sakila local.
  3. Usa /docs para pedir una lista pequeña; revisa estado, campos y límite.

Reto

Repite los pasos desde una carpeta limpia y confirma que las pruebas pasan sin leer .env; después llama a /customers y registra el estado y los campos que devuelve Sakila local.

Intenta el reto antes de consultar las pistas.

Quiz

1. ¿Qué contiene .env.example?
2. ¿Qué ruta de este proyecto no consulta la base?
3. ¿Qué usuario debe usar la aplicación al conectarse a MySQL?

Comprobación

La aplicación ya puede ejecutarse localmente contra Sakila y se distingue de sus pruebas SQLite. En la última lección comprobarás criterios y rúbrica antes de entregar.

TU PROGRESO

Cargando estado…