⚡ FastAPI do zero
FastAPI e o framework Python mais rapido para construir APIs modernas. Com type hints nativos, validacao automatica e performance async, voce sai do zero a uma API funcional em minutos. Peca ao 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
Em 1 frase: FastAPI + uvicorn = API no ar em 5 linhas de codigo.
📐 Modelos Pydantic
Pydantic transforma classes Python em schemas validados automaticamente. Se o cliente mandar dados errados, FastAPI retorna 422 com o erro exato. Claude Code gera modelos Pydantic perfeitos a partir de exemplos 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
Em 1 frase: Pydantic valida dados automaticamente; dados errados nunca chegam ao seu codigo.
🔁 Endpoints CRUD
Create, Read, Update, Delete. Toda API comeca com CRUD. FastAPI mapeia cada operacao a um verbo HTTP: POST para criar, GET para ler, PUT para atualizar, DELETE para remover. Claude Code gera um CRUD completo em um prompt: "cria CRUD de items com FastAPI".
Em 1 frase: POST/GET/PUT/DELETE = as quatro operacoes que toda API precisa.
🔒 Middleware e auth
Middleware intercepta requests antes de chegar nos endpoints. CORS, rate limiting e autenticacao vivem aqui. FastAPI usa Depends() para injecao de dependencias: crie uma funcao de auth e injete em qualquer rota.
Nunca faca isto
API publica sem auth, sem CORS configurado e sem rate limiting. E convite pra abuso.
Em 1 frase: Depends() + middleware = seguranca em cada request sem repetir codigo.
📄 Docs automaticas (Swagger)
FastAPI gera documentacao interativa automaticamente em /docs (Swagger UI) e /redoc (ReDoc). Cada endpoint, modelo e parametro aparece documentado. Voce testa a API direto no browser sem Postman.
Em 1 frase: /docs = documentacao viva que se atualiza sozinha com o codigo.
🌍 Deploy local e remoto
Local: uvicorn main:app --reload. Producao: gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker. Para deploy remoto, empacote com Docker (proximo modulo) e envie para Railway, Fly.io ou qualquer VPS com reverse proxy (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
Em 1 frase: uvicorn para dev, gunicorn para producao, Docker para deploy.
🧾 Resumo do Modulo
Proximo modulo:
5.4 — Testing Automatizado: pytest, TDD e coverage.