Guia completo do FastAPI-boilerplate: framework definitivo para APIs assíncronas de alto desempenho

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

  1. Configurar adequadamente o pool de conexões do banco de dados
  2. Habilitar cache Redis para dados frequentemente acessados
  3. Configurar limites de taxa de requisições apropriados
  4. Utilizar Gunicorn com múltiplos workers Uvicorn para melhorar capacidade de processamento concorrente

Tags: FastAPI Pydantic SQLAlchemy postgresql Redis

Publicado em 6-1 14:47 por Thomas