fastapi-templates
Cria projetos FastAPI prontos para produção com boas práticas. Ajuda a construir APIs de backend de forma rápida e eficiente.
O que ela faz
Este modelo cria a estrutura básica para um projeto de API usando FastAPI. Ele já vem com boas práticas de programação, como lidar com erros e organizar o código, para que você não precise começar do zero.
Quando usar
- ✓Ao iniciar um novo projeto de API com FastAPI.
- ✓Quando você quer uma base sólida para um serviço web rápido.
- ✓Para criar APIs que precisam responder rapidamente e lidar com muitas tarefas ao mesmo tempo.
Exemplo do que pedir para a IA
“Crie um projeto FastAPI para gerenciar usuários e itens, com banco de dados PostgreSQL.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele organiza o código em pastas lógicas (como 'api', 'models', 'services') e usa padrões de programação modernos para tornar o código mais eficiente e fácil de manter.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill fastapi-templatesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/api-scaffolding/skills/fastapi-templates/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Modelos de Projeto FastAPI
Estruturas de projeto FastAPI prontas para produção com padrões assíncronos, injeção de dependência, middleware e melhores práticas para construir APIs de alta performance.
Quando Usar Esta Habilidade
- Iniciando novos projetos FastAPI do zero
- Implementando APIs REST assíncronas com Python
- Construindo serviços web e microsserviços de alta performance
- Criando aplicações assíncronas com PostgreSQL, MongoDB
- Configurando projetos de API com estrutura e testes adequados
Conceitos Principais
1. Estrutura do Projeto
Layout Recomendado:
app/
├── api/ # API routes
│ ├── v1/
│ │ ├── endpoints/
│ │ │ ├── users.py
│ │ │ ├── auth.py
│ │ │ └── items.py
│ │ └── router.py
│ └── dependencies.py # Shared dependencies
├── core/ # Core configuration
│ ├── config.py
│ ├── security.py
│ └── database.py
├── models/ # Database models
│ ├── user.py
│ └── item.py
├── schemas/ # Pydantic schemas
│ ├── user.py
│ └── item.py
├── services/ # Business logic
│ ├── user_service.py
│ └── auth_service.py
├── repositories/ # Data access
│ ├── user_repository.py
│ └── item_repository.py
└── main.py # Application entry
2. Injeção de Dependência
O sistema de DI integrado do FastAPI usando Depends:
- Gerenciamento de sessão de banco de dados
- Autenticação/autorização
- Lógica de negócios compartilhada
- Injeção de configuração
3. Padrões Assíncronos
Uso adequado de async/await:
- Manipuladores de rota assíncronos
- Operações de banco de dados assíncronas
- Tarefas em segundo plano assíncronas
- Middleware assíncrono
4. Dependências
Os pacotes que os exemplos importam:
# requirements.txt
fastapi
uvicorn[standard]
pydantic-settings
sqlalchemy[asyncio]>=2.0 # DeclarativeBase; [asyncio] installs greenlet for the async engine
asyncpg # PostgreSQL driver: postgresql+asyncpg://...
PyJWT
pwdlib[argon2]
python-multipart # only for a login route that uses OAuth2PasswordRequestForm
# requirements-dev.txt
pytest
pytest-asyncio
httpx
aiosqlite # test database: sqlite+aiosqlite:///:memory:
Exemplos Detalhados e Padrões
Seções detalhadas (começando com ## Implementation Patterns) estão em references/details.md. Leia esse arquivo quando o resumo de navegação acima for insuficiente.
Testes
# tests/conftest.py
import pytest_asyncio
from httpx import ASGITransport, AsyncClient
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
from app.main import app
from app.core.database import get_db, Base
TEST_DATABASE_URL = "sqlite+aiosqlite:///:memory:"
# Async fixtures need pytest_asyncio.fixture in pytest-asyncio's default strict mode
@pytest_asyncio.fixture
async def db_session():
engine = create_async_engine(TEST_DATABASE_URL, echo=True)
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
AsyncSessionLocal = sessionmaker(
engine, class_=AsyncSession, expire_on_commit=False
)
async with AsyncSessionLocal() as session:
yield session
await engine.dispose()
@pytest_asyncio.fixture
async def client(db_session):
async def override_get_db():
yield db_session
app.dependency_overrides[get_db] = override_get_db
# httpx 0.28 removed AsyncClient(app=...); use an ASGI transport
transport = ASGITransport(app=app)
async with AsyncClient(transport=transport, base_url="http://test") as client:
yield client
app.dependency_overrides.clear()
# tests/test_users.py
import pytest
@pytest.mark.asyncio
async def test_create_user(client):
response = await client.post(
"/api/v1/users/",
json={
"email": "test@example.com",
"password": "testpass123",
"name": "Test User"
}
)
assert response.status_code == 201
data = response.json()
assert data["email"] == "test@example.com"
assert "id" in data
Perguntas frequentes
O que é FastAPI?
FastAPI é um framework moderno para criar APIs (interfaces de programação de aplicativos) em Python, conhecido por sua velocidade e facilidade de uso.
O que é 'async patterns'?
São técnicas de programação que permitem que seu programa faça várias coisas ao mesmo tempo sem travar, como esperar por uma resposta de banco de dados enquanto processa outra solicitação.
O que é 'dependency injection'?
É uma forma de organizar o código onde partes do programa recebem as ferramentas (dependências) que precisam para funcionar, em vez de terem que criá-las sozinhas. Isso torna o código mais flexível e fácil de testar.
Detalhes
Descrição original do autor
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4800
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC