Crear una ruta con FastAPI
Objetivos
Vas a poner en marcha una API mínima antes de conectarla con la base de muestra Sakila.
Concepto
API significa Application Programming Interface (interfaz de programación de aplicaciones): una forma acordada para que un programa solicite información o acciones a otro. En esta lección, el servidor recibe solicitudes HTTP (Hypertext Transfer Protocol, protocolo de transferencia de hipertexto) y responde en JSON (JavaScript Object Notation), un formato de texto para intercambiar datos. GET solicita leer un recurso; la ruta /health (también llamada endpoint) solo confirma que la aplicación responde y todavía no consulta MySQL.
Ejemplo
Instala las dependencias del ejercicio con python -m pip install fastapi uvicorn y guarda esto en main.py:
from fastapi import FastAPI
app = FastAPI(title="Sakila Read API")
@app.get("/health")
def health() -> dict[str, str]:
return {"status": "ok"}Desde la carpeta del archivo, inicia el servidor con python -m uvicorn main:app --reload. El decorador @app.get registra la ruta de lectura /health; la función devuelve un diccionario Python y FastAPI lo convierte a JSON. Visita /health y revisa que la respuesta contenga status igual a ok.
Nota
Límite: que /health responda no demuestra que la base de datos esté disponible; aún no hemos creado una conexión.
Práctica guiada
- Cambia el valor de
statusaready. - Agrega una clave
servicecon el valorsakila-api. - Reinicia y comprueba la respuesta JSON.
Reto
Crea una segunda ruta GET /about que devuelva el nombre del servicio y que no acceda ni escriba en la base.
Quiz
¿Qué hace la ruta /health de este ejemplo?
- A. Cambia un registro de cliente.
- B. Confirma que el servidor web responde.
- C. Ejecuta una consulta SQL.
Respuesta: B. La función solo devuelve un objeto JSON.
Comprobación
Identifica el decorador que registra una ruta GET. La siguiente lección define el modelo de lectura para la tabla customer.