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.