Sobre o projeto
Este repositório é uma lista curada de melhores práticas e convenções do FastAPI baseada na experiência de produção em startups. Não é uma biblioteca ou framework, mas um recurso de documentação com exemplos de código e orientação arquitetural.
Os principais tópicos abordados incluem:
- Estrutura do projeto: um layout baseado em domínios inspirado no Dispatch da Netflix, com cada módulo contendo seu próprio router, schemas, models, services, dependencies, constants, config, utils e exceptions.
- Rotas assíncronas: orientação sobre como lidar com tarefas intensivas em I/O e CPU, explicando como o FastAPI executa rotas síncronas em um threadpool e por que operações bloqueantes em rotas assíncronas podem travar o event loop.
- Uso do Pydantic: uso extensivo do Pydantic para validação, criação de um modelo base global personalizado para serialização consistente de datetime e divisão do BaseSettings entre módulos.
- Dependências: uso de dependências do FastAPI além da injeção para validação de requisições, encadeamento de dependências, aproveitamento de cache com escopo de requisição e preferência por dependências assíncronas.
- Práticas diversas: seguir convenções REST, entender o comportamento de serialização de respostas do FastAPI, executar SDKs síncronos em thread pools, escolher entre BackgroundTasks e filas de tarefas reais, lidar com conversão de ValueError para ValidationError, ocultar a documentação por padrão, definir convenções de nomenclatura de banco de dados, usar migrações Alembic e adotar o ruff.
O repositório também inclui um arquivo AGENTS.md com as mesmas regras em um formato legível por máquina para agentes de IA, apresentando uma matriz de versões, blocos de Faça/Não faça e uma lista de verificação de antipadrões. Uma tradução do README em chinês simplificado está disponível.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.