Habilidade de Especialista em FastAPI
Geração e revisão idiomática de serviços FastAPI - uma Habilidade de Agente para Python 3.14, FastAPI 0.115+ e Pydantic 2.
Busque em todas as páginas da documentação
Geração e revisão idiomática de serviços FastAPI - uma Habilidade de Agente para Python 3.14, FastAPI 0.115+ e Pydantic 2.
Produz uma lista de verificação de API implantável: layout src/, pyproject.toml com uv, módulos de roteador, configurações via pydantic-settings, /health e /ready, logging estruturado, testes pytest + httpx e um stub de Dockerfile.
| Entrada | Por quê |
|---|---|
| Nome do serviço | Nome do pacote, campo de log, tag da imagem Docker |
| DB síncrono vs assíncrono | AsyncSession + asyncpg vs SQLAlchemy síncrono |
| Modelo de autenticação | Nenhum, chave de API, OAuth2 JWT |
| Porta padrão | 8000 ou convenção da plataforma |
| Caminho do monorepo | services/billing-api vs raiz do repositório |
pyproject.toml com fastapi, uvicorn[standard], pydantic-settings, httpx, pytestapp/main.py com lifespan, stub de política CORS, inclusões de roteadorapp/settings.py com BaseSettings e .env.exampleapp/routers/health.py com /health e /readytests/test_health.py usando TestClient ou httpx.ASGITransportmodel_validate, Field(alias=...), não v1 .dict()..env.example.logging ou structlog - sem print puro em caminhos de produção.requests síncrono ou CPU pesada sem to_thread.requires-python >= 3.14 quando o padrão da organização permite - documentar fallback para 3.13 se necessário.cd services/billing-api
uv sync
uv run ruff check .
uv run pytest -q
uv run uvicorn app.main:app --reload &
curl -sf http://localhost:8000/health
curl -sf http://localhost:8000/ready# app/main.py
from contextlib import asynccontextmanager
from fastapi import FastAPI
from app.routers import health
@asynccontextmanager
async def lifespan(app: FastAPI):
yield
app = FastAPI(title="billing-api", lifespan=lifespan)
app.include_router(health.router)# app/routers/health.py
from fastapi import APIRouter
router = APIRouter(tags=["health"])
@router.get("/health")
def health() -> dict[str, str]:
return {"status": "ok"}
@router.get("/ready")
def ready() -> dict[str, str]:
return {"status": "ready"}FastAPI para APIs JSON orientadas a IO. Django quando admin, ORM monolítico e templates são o núcleo - a habilidade não substitui ADR.
Apenas quando a entrada especifica persistência desde o primeiro dia - caso contrário, stub do protocolo do repositório e adicionar DB em um PR de acompanhamento.
uvicorn para desenvolvimento; produção frequentemente gunicorn -k uvicorn.workers.UvicornWorker atrás de um proxy reverso.
Versões do Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026