⚡ FastAPI desde cero
FastAPI es el framework de Python más rápido para crear APIs modernas. Con type hints nativos, validación automática y rendimiento async, pasas de cero a una API funcional en minutos. Pídele a Claude Code: "cria uma FastAPI com endpoint de health check".
from fastapi import FastAPI
app = FastAPI(title="Minha API", version="0.1.0")
@app.get("/health")
async def health():
return {"status": "ok"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
# Rodar: uvicorn main:app --reload
En 1 frase: FastAPI + uvicorn = API en funcionamiento en 5 líneas de código.
📐 Modelos Pydantic
Pydantic transforma clases de Python en esquemas validados automáticamente. Si el cliente envía datos incorrectos, FastAPI devuelve 422 con el error exacto. Claude Code genera modelos Pydantic perfectos a partir de ejemplos de JSON.
from pydantic import BaseModel, Field
class ItemCreate(BaseModel):
name: str = Field(..., min_length=1, max_length=100)
price: float = Field(..., gt=0)
tags: list[str] = []
class ItemResponse(ItemCreate):
id: int
En 1 frase: Pydantic valida los datos automáticamente; los datos incorrectos nunca llegan a tu código.
🔁 Endpoints CRUD
Create, Read, Update, Delete. Toda API empieza con CRUD. FastAPI asigna cada operación a un verbo HTTP: POST para crear, GET para leer, PUT para actualizar, DELETE para eliminar. Claude Code genera un CRUD completo con un prompt: "cria CRUD de items com FastAPI".
En 1 frase: POST/GET/PUT/DELETE = las cuatro operaciones que toda API necesita.
🔒 Middleware y autenticación
El middleware intercepta las solicitudes antes de que lleguen a los endpoints. CORS, la limitación de solicitudes y la autenticación van aquí. FastAPI usa Depends() para inyección de dependencias: crea una función de autenticación e inyéctala en cualquier ruta.
Nunca hagas esto
Una API pública sin auth, sin CORS configurado y sin rate limiting es una invitación al abuso.
En 1 frase: Depends() + middleware = seguridad en cada request sin repetir código.
📄 Documentación automática (Swagger)
FastAPI genera documentación interactiva automáticamente en /docs (Swagger UI) y /redoc (ReDoc). Cada endpoint, modelo y parámetro aparece documentado. Pruebas la API directamente en el browser sin Postman.
En 1 frase: /docs = documentación viva que se actualiza sola con el código.
🌍 Deploy local y remoto
Local: uvicorn main:app --reload. Producción: gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker. Para un deploy remoto, empaqueta con Docker (próximo módulo) y envía a Railway, Fly.io o cualquier VPS con un proxy inverso (nginx/Caddy).
# Dev uvicorn main:app --reload --port 8000 # Producao gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000
En 1 frase: uvicorn para desarrollo, gunicorn para producción, Docker para deploy.
🧾 Resumen del módulo
Siguiente módulo:
5.4 — Pruebas automatizadas: pytest, TDD y coverage.