Skip to main content

Um template para iniciar projetos FastAPI rapidamente

Project description

FastAPI Starter - Estruturas de Projeto 🚀

Bem-vindo ao FastAPI Starter! Este CLI é sua ferramenta definitiva para iniciar projetos FastAPI com uma variedade de estruturas organizacionais, cada uma adaptada a diferentes cenários e necessidades de desenvolvimento. Com apenas um comando, você pode escolher entre 10 templates incríveis e começar a desenvolver com rapidez, escalabilidade e organização! 😎


📂 Estruturas Disponíveis

1. AWS Structure (create_aws_structure) ☁️

Projetado para aplicações que serão implantadas na AWS.

  • Inclui: Diretórios para templates de CloudFormation e SAM, exemplo de integração com boto3 para listar buckets do S3 e scripts para deploy.
  • Ideal para: Aplicações nativas na nuvem, serverless, e integrações com AWS (Lambda, S3, DynamoDB, etc.).

2. Default Structure (create_default_structure) 🔹

A estrutura clássica para iniciar um projeto FastAPI com uma base robusta.

  • Inclui: Diretórios para Kubernetes, código fonte em src/, testes, Dockerfile, compose.yaml e arquivos de CI/CD.
  • Ideal para: Projetos que exigem uma base completa e organizada desde o início.

3. Minimal Structure (create_minimal_structure) ⚡

Uma versão enxuta, contendo somente o essencial para rodar sua API.

  • Inclui: Um único arquivo de servidor em src/, testes básicos e dependências mínimas.
  • Ideal para: Protótipos, provas de conceito e projetos simples onde menos é mais.

4. Advanced Structure (create_advanced_structure) 🚀

Uma arquitetura modular e bem organizada, ideal para aplicações de médio porte.

  • Inclui: Diretórios para endpoints, configuração centralizada, modelos, schemas e integração Docker.
  • Ideal para: APIs que crescem com o tempo e necessitam de uma organização mais refinada.

5. Enterprise Structure (create_enterprise_structure) 🏢

Voltada para grandes projetos corporativos que exigem escalabilidade, segurança e organização rigorosa.

  • Inclui: Estrutura baseada em domínios com diretórios para serviços, repositórios, autenticação e migrações de banco de dados, além de CI/CD robusto.
  • Ideal para: Aplicações empresariais complexas que precisam de alta performance e manutenção contínua.

6. Microservice Structure (create_microservice_structure) 🏗️

Projetada para arquiteturas de microsserviços, onde cada serviço é independente e escalável.

  • Inclui: Estrutura enxuta para cada microsserviço com suporte à orquestração local via Docker Compose e integração com API Gateway.
  • Ideal para: Sistemas distribuídos, onde a modularidade e independência de serviços são essenciais.

7. Scalable Structure (create_scalable_structure) 📈

Preparada para projetos que precisam crescer rapidamente e suportar alto volume de tráfego.

  • Inclui: Divisão em módulos, workers para tarefas assíncronas, integração com cache (ex.: Redis), manifestos para Kubernetes e monitoramento de performance.
  • Ideal para: Projetos que demandam escalabilidade horizontal e vertical com alta performance.

8. Modular Structure (create_modular_structure) 🔧

Uma arquitetura altamente modular que facilita a reutilização de código e a manutenção contínua.

  • Inclui: Diretórios organizados por módulos independentes com integração de endpoints e configurações globais, além de suporte para testes e containerização via Docker.
  • Ideal para: Equipes que desejam manter um código organizado, reutilizável e de fácil manutenção.

9. External API Structure (create_externalapi_structure) 🌐

Projetada para aplicações que precisam se comunicar com APIs externas.

  • Inclui: Um exemplo de rota que realiza chamadas a APIs externas usando a biblioteca requests, além de exemplos de testes e configuração de Docker.
  • Ideal para: Projetos que consomem serviços externos e necessitam de integração rápida com APIs de terceiros.

10. GraphQL Structure (create_graphql_structure) 🗨️

Integra FastAPI com GraphQL utilizando a biblioteca Strawberry, permitindo que você crie uma API GraphQL de forma simples.

  • Inclui: Definição do schema GraphQL, configuração de rotas para o endpoint GraphQL (HTTP e WebSocket) e exemplo de consulta.
  • Ideal para: Projetos que preferem a flexibilidade do GraphQL em vez de REST.

🚀 Como Usar

1. Instalação

Instale o FastAPI Starter em modo editável:

pip install fastapi-starter-template

📌 Criando um Novo Projeto:

 Utilize o CLI para criar um novo projeto, especificando o template desejado:

fastapi-starter init meu_projeto --template <template>

🚀 Como Usar

  1. Exemplos:
   aws
   default
   minimal
   advanced
   enterprise
   microservice
   scalable
   modular
  1. Execute o servidor:

bash uvicorn src.server:app --reload

  1. Acesse a API em http://127.0.0.1:8000

🏗️ Deploy

  • Docker: docker-compose up
  • AWS Lambda: Utilize os scripts em scripts/ e Terraform
  • Kubernetes: Aplique os manifestos em infra/k8s/

📢 Dúvidas? Abra uma issue no repositório! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_starter_template-0.1.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_starter_template-0.1.2-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_starter_template-0.1.2.tar.gz.

File metadata

  • Download URL: fastapi_starter_template-0.1.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/21.6.0

File hashes

Hashes for fastapi_starter_template-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c49a61a6846c00334e209554a703c6da795028289776c2d153935819dfc5e0e4
MD5 8d12deb204c530b51852df65fbfdb423
BLAKE2b-256 11644870bdf998ccb831409e0ef1effc006d040f03b203d0b3fa3dcbcf85570e

See more details on using hashes here.

File details

Details for the file fastapi_starter_template-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_starter_template-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d50aae682aa0510dc3f406ce7adefbbbb927e40ed6a870de62b40c3d55e22a98
MD5 a09e6d7c78b12475495e516f5f9c36b2
BLAKE2b-256 1ac2d5b9455c2c387d9f63f4b41f2b54b1c322707b046607249f5b4fed9fe41e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page