O FastAPI-boilerplate é uma estrutura extensível para APIs assíncronas, construída com FastAPI, Pydantic V2, SQLAlchemy 2.0, PostgreSQL e Redis, oferecendo uma solução completa para o desenvolvimento rápido de APIs de alta performance.
Principais vantagens do FastAPI-boilerplate
1. Arquitetura assíncrona pronta para uso
O framework utiliza um design totalmente assíncrono, explorando ao máximo as características do Python assíncrono combinadas com o alto desempenho do FastAPI para lidar com grande volume de requisições concorrentes.
2. Integração completa de tecnologias
Integra todas as tecnologias necessárias para o desenvolvimento moderno de APIs:
- FastAPI: Documentação automática e verificação de tipos
- Pydantic V2: Validação e serialização de dados avançada
- SQLAlchemy 2.0: Suporte ORM assíncrono
- PostgreSQL: Banco de dados relacional confiável
- Redis: Sistema de cache e filas de tarefas
3. Funcionalidades empresariais integradas
Inclui diversas características de nível empresarial já implementadas:
- Sistema de autenticação com JWT
- Controle de permissões em nível granular
- Middleware de controle de taxa de requisições
- Sistema de processamento de tarefas em segundo plano
4. Sistema de configuração flexível
Suporta configurações para múltiplos ambientes, gerenciando diferentes configurações através de variáveis de ambiente e classes de configuração.
5. Conjunto completo de ferramentas
Inclui todas as ferramentas necessárias para testes, migrações e deploy:
- Framework de testes unitários
- Ferramentas de migração de banco de dados
- Configurações para deploy com Docker
Início rápido: instalação e configuração em 3 passos
1. Clonar o repositório
git clone https://gitcode.com/gh_mirrors/fastap/FastAPI-boilerplate
cd FastAPI-boilerplate
2. Configurar ambiente
Criar e configurar o arquivo de variáveis de ambiente:
cp .env.example .env
# Editar o arquivo .env com as informações de conexão do banco de dados e Redis
3. Iniciar a aplicação
Usar Docker para iniciar rapidamente:
cd scripts/local_with_uvicorn
docker-compose up -d
A aplicação estará disponível em http://localhost:8000, com documentação da API acessível em http://localhost:8000/docs
Módulos de funcionalidades essenciais
Modelos de dados e operações com banco de dados
Utiliza SQLAlchemy 2.0 como ORM, com modelos definidos no diretório src/app/models/, incluindo modelos básicos como usuários, artigos e permissões. As operações CRUD estão encapsuladas no diretório src/app/crud/.
Versionamento de API
Suporta gerenciamento de versões da API, com implementação atual em src/app/api/v1/, permitindo fácil extensão para versões futuras mantendo compatibilidade.
Estratégias de cache
Integra sistema de cache Redis através de src/app/core/utils/cache.py, oferecendo controle flexível de cache com múltiplas estratégias para melhorar a velocidade de resposta.
Processamento de tarefas em segundo plano
Sistema integrado baseado em Celery para processamento de tarefas, localizado em src/app/core/worker/, capaz de lidar com operações como envio de e-mails e processamento de dados sem bloquear respostas da API.
Guia de deploy para ambiente de produção
Soluções com Docker
Oferece múltiplas configurações Docker:
- Ambiente de desenvolvimento local:
scripts/local_with_uvicorn/ - Gunicorn gerenciando workers Uvicorn:
scripts/gunicorn_managing_uvicorn_workers/ - Ambiente de produção com Nginx:
scripts/production_with_nginx/
Recomendações de otimização
- Configurar adequadamente o pool de conexões do banco de dados
- Habilitar cache Redis para dados frequentemente acessados
- Configurar limites de taxa de requisições apropriados
- Utilizar Gunicorn com múltiplos workers Uvicorn para melhorar capacidade de processamento concorrente