Skip to main content

Un générateur d'applications FastAPI avec structure complète

Project description

FastAPI Generator

Un générateur puissant et flexible pour créer des applications FastAPI avec une structure professionnelle.

🚀 Installation

pip install createfastapi

✨ Fonctionnalités

  • 🏗️ Templates multiples : minimal, full, api, microservice
  • 🗄️ Support bases de données : SQLite, PostgreSQL, MySQL
  • 🔐 Authentification JWT intégrée
  • 🐳 Configuration Docker automatique
  • 🧪 Tests pré-configurés avec pytest
  • 📚 Documentation automatique
  • 🎨 Interface CLI intuitive
  • 🔧 Extensible - ajout facile de routers et modèles

🎯 Utilisation rapide

Créer une nouvelle application

# Application minimale
fastapi-gen create mon_api

# Application complète avec base de données
fastapi-gen create mon_api --template full --database postgresql --auth --docker

# Voir toutes les options
fastapi-gen create --help

Ajouter des composants

# Ajouter un router avec CRUD complet
fastapi-gen add-router users --model User --crud

# Ajouter un modèle personnalisé  
fastapi-gen add-model Product --fields "name:str,price:float,available:bool"

# Voir les infos du projet
fastapi-gen info

📋 Templates disponibles

Template Description Inclus
minimal Application basique Routes de base, modèles Pydantic
full Application complète BDD, config, Docker, tests
api API RESTful CRUD complet, validation
microservice Microservice Santé, métriques, logging

🗄️ Bases de données supportées

  • SQLite - Parfait pour le développement
  • PostgreSQL - Production robuste
  • MySQL - Alternative populaire
  • Aucune - API sans persistance

🔧 Options avancées

# Créer avec toutes les options
fastapi-gen create enterprise_api \
  --template full \
  --database postgresql \
  --auth \
  --docker \
  --tests \
  --force

# Structure générée :
enterprise_api/
├── main.py                 # Application FastAPI
├── requirements.txt        # Dépendances
├── Dockerfile             # Container
├── docker-compose.yml     # Services
├── .env.example           # Variables d'environnement  
├── app/
│   ├── core/
│      ├── config.py      # Configuration      └── database.py    # Base de données   ├── models/            # Modèles SQLAlchemy/Pydantic   ├── routers/           # Routes de l'API   └── auth/              # Authentification JWT
├── tests/                 # Tests pytest
└── .fastapi-gen.json     # Configuration du générateur

🔐 Authentification JWT

Avec l'option --auth, le générateur inclut :

  • Modèle utilisateur avec hash de mot de passe
  • Endpoints d'inscription/connexion
  • Middleware de vérification JWT
  • Décorateurs de protection des routes

🐳 Support Docker

L'option --docker génère :

  • Dockerfile optimisé pour FastAPI
  • docker-compose.yml avec services
  • Configuration pour base de données containerisée
  • Scripts de déploiement

🧪 Tests intégrés

Les tests incluent :

  • Tests unitaires avec pytest
  • Client de test FastAPI
  • Fixtures pour les données de test
  • Couverture de code
  • Tests des endpoints CRUD

🎨 Interface CLI

# Commandes principales
fastapi-gen create <nom>           # Créer une application
fastapi-gen add-router <nom>       # Ajouter un router
fastapi-gen add-model <nom>        # Ajouter un modèle  
fastapi-gen info                   # Infos du projet

# Aliases disponibles
createfastapi create <nom>     # Même que fastapi-gen

📚 Exemples d'utilisation

API E-commerce

fastapi-gen create ecommerce_api --template full --database postgresql --auth

cd ecommerce_api

# Ajouter les modèles métier
fastapi-gen add-model Product --fields "name:str,price:float,category:str,stock:int"
fastapi-gen add-model Order --fields "user_id:int,total:float,status:str"

# Ajouter les routers
fastapi-gen add-router products --model Product --crud
fastapi-gen add-router orders --model Order --crud

Microservice simple

fastapi-gen create user_service --template microservice --database sqlite

cd user_service
fastapi-gen add-router users --crud

API sans base de données

fastapi-gen create calculator_api --template api --database none
cd calculator_api

# L'API utilisera des données en mémoire
python main.py

🛠️ Développement

Structure du package

createfastapi/
├── create_fastapi/
│   ├── __init__.py
│   ├── cli.py              # Interface ligne de commande
│   ├── generator.py        # Logique principale
│   ├── templates.py        # Gestionnaire de templates
│   ├── utils.py           # Utilitaires
│   └── templates/         # Templates Jinja2
├── setup.py               # Configuration du package
├── pyproject.toml        # Configuration moderne
└── README.md             # Cette documentation

Contribuer

  1. Fork le projet
  2. Créer une branche feature
  3. Commiter les changements
  4. Pousser vers la branche
  5. Ouvrir une Pull Request

Installation en mode développement

git clone https://github.com/bonitoFotso/create_fastapi
cd createfastapi
pip install -e .

🔄 Changelog

v1.0.0

  • ✨ Version initiale
  • 🏗️ Templates : minimal, full, api, microservice
  • 🗄️ Support SQLite, PostgreSQL, MySQL
  • 🔐 Authentification JWT
  • 🐳 Support Docker
  • 🧪 Tests intégrés
  • 🎨 CLI complète

📄 License

MIT License - voir LICENSE pour plus de détails.

🆘 Support

🙏 Remerciements

  • FastAPI pour le framework fantastique
  • Click pour l'interface CLI
  • Jinja2 pour les templates

Créé avec ❤️ pour la communauté FastAPI

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

createfa-1.0.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

createfa-1.0.3-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file createfa-1.0.3.tar.gz.

File metadata

  • Download URL: createfa-1.0.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for createfa-1.0.3.tar.gz
Algorithm Hash digest
SHA256 70ddc62bc21f1db6a4f1a4afbdb478347a41c4b7d45d6dfbff40f54fe6d8c77a
MD5 6a2f3cd33681192f81a8539478ab8223
BLAKE2b-256 cda729dc9c08305b7e880d74715813c3fe3f4f8cdffa95f7756616b7f9b6eb70

See more details on using hashes here.

File details

Details for the file createfa-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: createfa-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 30.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for createfa-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a93b3d838bc7cdaeecf6f5a261e5145ad688b6e8333475aa9aa76ba9537ee14c
MD5 0e16fdac9ed0bd41a9b2b4d7c4dc2f98
BLAKE2b-256 f928bc8f6c52b5db588798d68e3dc168df226041e5007e72c3a1bb2af1ca2dbe

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