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 --reloadEdita .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
- Ejecuta primero los tests: no necesitan MySQL y usan SQLite temporal.
- Inicia el servidor después de configurar
.envy Sakila local. - Usa
/docspara 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
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.