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
- Exemplos:
aws
default
minimal
advanced
enterprise
microservice
scalable
modular
- Execute o servidor:
bash uvicorn src.server:app --reload
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c49a61a6846c00334e209554a703c6da795028289776c2d153935819dfc5e0e4
|
|
| MD5 |
8d12deb204c530b51852df65fbfdb423
|
|
| BLAKE2b-256 |
11644870bdf998ccb831409e0ef1effc006d040f03b203d0b3fa3dcbcf85570e
|
File details
Details for the file fastapi_starter_template-0.1.2-py3-none-any.whl.
File metadata
- Download URL: fastapi_starter_template-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d50aae682aa0510dc3f406ce7adefbbbb927e40ed6a870de62b40c3d55e22a98
|
|
| MD5 |
a09e6d7c78b12475495e516f5f9c36b2
|
|
| BLAKE2b-256 |
1ac2d5b9455c2c387d9f63f4b41f2b54b1c322707b046607249f5b4fed9fe41e
|