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 :
Dockerfileoptimisé pour FastAPIdocker-compose.ymlavec 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
- Fork le projet
- Créer une branche feature
- Commiter les changements
- Pousser vers la branche
- 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
Créé avec ❤️ pour la communauté FastAPI
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70ddc62bc21f1db6a4f1a4afbdb478347a41c4b7d45d6dfbff40f54fe6d8c77a
|
|
| MD5 |
6a2f3cd33681192f81a8539478ab8223
|
|
| BLAKE2b-256 |
cda729dc9c08305b7e880d74715813c3fe3f4f8cdffa95f7756616b7f9b6eb70
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a93b3d838bc7cdaeecf6f5a261e5145ad688b6e8333475aa9aa76ba9537ee14c
|
|
| MD5 |
0e16fdac9ed0bd41a9b2b4d7c4dc2f98
|
|
| BLAKE2b-256 |
f928bc8f6c52b5db588798d68e3dc168df226041e5007e72c3a1bb2af1ca2dbe
|