Créer des projets
Un guide détaillé sur la création de différents types de projets FastAPI avec FastAPI-fastkit.
Création de projet basique
1. Création de projet en mode interactif
La façon la plus basique de créer un projet en mode interactif :
$ fastkit init
Enter the project name: my-awesome-api
Enter the author name: John Doe
Enter the author email: john@example.com
Enter the project description: Awesome FastAPI project
Project Information
┌──────────────┬─────────────────────────┐
│ Project Name │ my-awesome-api │
│ Author │ John Doe │
│ Author Email │ john@example.com │
│ Description │ Awesome FastAPI project │
└──────────────┴─────────────────────────┘
2. Sélection de la pile
Choisissez la pile de dépendances à inclure dans votre projet :
Pile MINIMAL (par défaut)
Le projet FastAPI le plus basique :
fastapi— framework FastAPIuvicorn— serveur ASGIpydantic— validation des donnéespydantic-settings— gestion des paramètres
Idéal pour :
- Apprendre FastAPI
- API simples
- Prototypes
- Microservices
Pile STANDARD
Inclut la prise en charge des bases de données et des tests :
- Toutes les dépendances MINIMAL
sqlalchemy— ORM pour les opérations en base de donnéesalembic— migrations de base de donnéespytest— framework de test
Idéal pour :
- La plupart des applications web
- API avec stockage en base de données
- Applications prêtes pour la production
- Projets en équipe
Pile FULL
Environnement de développement complet :
- Toutes les dépendances STANDARD
redis— cache et stockage de sessioncelery— traitement des tâches en arrière-plan
Idéal pour :
- Applications de grande taille
- Exigences de haute performance
- Logique métier complexe
- Applications d'entreprise
Options de projet avancées
Configuration personnalisée du projet
Vous pouvez personnaliser votre projet lors de la création :
$ fastkit init
Enter the project name: advanced-api
Enter the author name: Development Team
Enter the author email: dev@company.com
Enter the project description: Advanced FastAPI application with custom features
# Choisissez la pile STANDARD pour le support de base de données
Select stack (minimal, standard, full): standard
Do you want to proceed with project creation? [y/N]: y
Explication de la structure du projet
Lorsque vous créez un projet, FastAPI-fastkit génère cette structure :
my-awesome-api/
├── .venv/ # Environnement virtuel
├── src/ # Code source
│ ├── __init__.py
│ ├── main.py # Point d'entrée de l'application
│ ├── core/ # Configuration centrale
│ │ ├── __init__.py
│ │ └── config.py # Paramètres et configuration
│ ├── api/ # Couche API
│ │ ├── __init__.py
│ │ ├── api.py # Routeur principal de l'API
│ │ └── routes/ # Modules de routes individuels
│ │ ├── __init__.py
│ │ └── items.py # Endpoints d'exemple pour items
│ ├── crud/ # Opérations sur les données
│ │ ├── __init__.py
│ │ └── items.py # Opérations CRUD pour items
│ ├── schemas/ # Modèles Pydantic
│ │ ├── __init__.py
│ │ └── items.py # Schémas de validation des données
│ └── mocks/ # Données de test
│ ├── __init__.py
│ └── mock_items.json # Données d'exemple pour le développement
├── tests/ # Suite de tests
│ ├── __init__.py
│ ├── conftest.py # Configuration des tests
│ └── test_items.py # Tests d'exemple
├── scripts/ # Scripts utilitaires
│ ├── test.sh # Lancer les tests
│ ├── coverage.sh # Couverture de tests
│ └── lint.sh # Vérification du code
├── requirements.txt # Dépendances Python
├── setup.py # Configuration du paquet
└── README.md # Documentation du projet
3. Sélection du gestionnaire de paquets
FastAPI-fastkit prend en charge plusieurs gestionnaires de paquets Python. Choisissez celui qui correspond le mieux à votre flux de développement :
Gestionnaires de paquets disponibles
Available Package Managers:
Package Managers
┌────────┬────────────────────────────────────────────┐
│ PIP │ Standard Python package manager │
│ UV │ Fast Python package manager │
│ PDM │ Modern Python dependency management │
│ POETRY │ Python dependency management and packaging │
└────────┴────────────────────────────────────────────┘
Select package manager (pip, uv, pdm, poetry) [uv]: uv
Chaque gestionnaire de paquets a ses atouts :
UV (par défaut — recommandé)
Gestionnaire de paquets rapide basé sur Rust
- ⚡ Ultra-rapide : 10 à 100 fois plus rapide que pip
- 🔧 Remplacement direct : compatible avec les flux pip
- 📦 Moderne : prise en charge complète de PEP 621
- 🛠️ Fiable : résolution déterministe
Fichiers générés :
pyproject.toml(format PEP 621)uv.lock(fichier de verrouillage)
Utilisation après création :
cd my-project
uv sync # Installer les dépendances
uv add requests # Ajouter une dépendance
uv run pytest # Lancer les tests
PDM
Gestion moderne des dépendances Python
- 🚀 Moderne : prise en charge de PEP 582 et PEP 621
- 🧠 Intelligent : résolution avancée des dépendances
- 💼 Professionnel : prise en charge des espaces de travail et des projets multiples
- 📊 Analytique : outils d'analyse des dépendances
Fichiers générés :
pyproject.toml(format PEP 621)pdm.lock(fichier de verrouillage)
Utilisation après création :
cd my-project
pdm install # Installer les dépendances
pdm add requests # Ajouter une dépendance
pdm run pytest # Lancer les tests
Poetry
Gestion mature des dépendances et packaging
- ✅ Établi : mature et largement adopté
- 📦 Intégré : prise en charge du build et de la publication
- 🔒 Reproductible : poetry.lock pour des versions exactes
- 🏗️ Complet : gestion complète du cycle de vie d'un projet
Fichiers générés :
pyproject.toml(format Poetry)poetry.lock(fichier de verrouillage)
Utilisation après création :
cd my-project
poetry install # Installer les dépendances
poetry add requests # Ajouter une dépendance
poetry run pytest # Lancer les tests
PIP
Gestionnaire de paquets Python standard
- 🏠 Intégré : livré avec Python
- 🌍 Universel : fonctionne partout
- 📚 Familier : la plupart des développeurs le connaissent
- 🔧 Simple : flux de travail direct
Fichiers générés :
requirements.txt
Utilisation après création :
cd my-project
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
pip install -r requirements.txt
pip install requests
pytest
Spécifier le gestionnaire de paquets
Vous pouvez indiquer votre gestionnaire de paquets préféré :
Sélection interactive (par défaut) :
Option en ligne de commande :
$ fastkit init --package-manager poetry
$ fastkit init --package-manager pdm
$ fastkit init --package-manager uv
$ fastkit init --package-manager pip
Comprendre chaque répertoire
Répertoire src/
Contient tout le code source de votre application selon une organisation en src/, une bonne pratique courante pour le packaging Python.
Module core/
- config.py : paramètres de l'application, variables d'environnement et configuration
- Centralise toute la gestion de la configuration
- Prend en charge le fichier
.envpour les paramètres spécifiques à l'environnement
Module api/
- api.py : routeur principal d'API qui regroupe tous les sous-routeurs
- routes/ : modules de routes individuels pour différentes ressources
- Séparation propre des préoccupations pour les différents points d'extrémité de l'API
Module crud/
- Opérations de base de données et logique métier
- Opérations Create, Read, Update, Delete
- Couche d'abstraction entre les routes d'API et le stockage des données
Module schemas/
- Modèles Pydantic pour la validation des données
- Schémas de requête / réponse
- Définitions de types et modèles de données
Répertoire tests/
- Suite de tests complète pour votre application
- Inclut des tests unitaires et d'intégration
- Préconfiguré avec pytest
Comparaison des piles
| Fonctionnalité | MINIMAL | STANDARD | FULL |
|---|---|---|---|
| FastAPI & Uvicorn | ✅ | ✅ | ✅ |
| Validation des données | ✅ | ✅ | ✅ |
| Prise en charge des bases de données | ❌ | ✅ | ✅ |
| Migrations | ❌ | ✅ | ✅ |
| Framework de test | ❌ | ✅ | ✅ |
| Mise en cache (Redis) | ❌ | ❌ | ✅ |
| Tâches en arrière-plan | ❌ | ❌ | ✅ |
| Idéal pour | Apprentissage, API simples | La plupart des applications | Entreprise, applications complexes |
Exemples de création de projet
Exemple 1 : projet d'apprentissage
Exemple 2 : API e-commerce
Exemple 3 : application haute performance
$ fastkit init
Enter the project name: enterprise-api
Enter the author name: Enterprise Team
Enter the author email: enterprise@company.com
Enter the project description: High-performance enterprise API
Select stack (minimal, standard, full): full
Do you want to proceed with project creation? [y/N]: y
Après la création du projet
1. Activer l'environnement virtuel
2. Vérifier l'installation
3. Démarrer le développement
Gestion de la configuration
Variables d'environnement
Votre projet prend en charge la configuration via des fichiers .env :
Créez un fichier .env à la racine de votre projet :
# .env
APP_NAME=My Awesome API
APP_VERSION=1.0.0
DEBUG=True
DATABASE_URL=sqlite:///./app.db
SECRET_KEY=your-secret-key-here
Configuration dans le code
Le src/core/config.py généré charge automatiquement ces variables :
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
APP_NAME: str = "FastAPI Application"
APP_VERSION: str = "1.0.0"
DEBUG: bool = False
DATABASE_URL: str = "sqlite:///./app.db"
SECRET_KEY: str = "dev-secret-key"
class Config:
env_file = ".env"
settings = Settings()
Options de personnalisation
Ajouter des dépendances personnalisées
Après la création du projet, vous pouvez ajouter d'autres dépendances :
Modifier la structure du projet
La structure générée suit les bonnes pratiques, mais vous pouvez l'adapter :
- Ajouter de nouveaux modules dans
src/ - Créer des fichiers de routes supplémentaires dans
api/routes/ - Étendre les opérations CRUD dans
crud/ - Ajouter d'autres schémas dans
schemas/
Bonnes pratiques
1. Environnement virtuel
Utilisez toujours des environnements virtuels pour isoler les dépendances du projet :
# Create project with virtual environment
$ fastkit init # Automatically creates .venv/
# Activate when working
$ source .venv/bin/activate
2. Gestion de versions
Initialisez un dépôt git après la création du projet :
3. Configuration de l'environnement
- Utilisez des fichiers
.envpour le développement local - Utilisez des variables d'environnement pour la production
- Ne committez jamais de données sensibles dans le contrôle de version
4. Tests
Profitez du framework de test inclus :
Étapes suivantes
Après avoir créé votre projet :
- Ajouter des routes : apprenez à ajouter de nouveaux points d'extrémité d'API
- Référence CLI : maîtrisez toutes les commandes disponibles
- Tutoriel Votre premier projet : construire une application complète
Astuces pour la création de projet
- Choisissez la pile qui correspond aux besoins de votre projet
- Commencez par MINIMAL pour apprendre, utilisez STANDARD pour la plupart des projets
- La structure du projet est conçue pour l'évolutivité et la maintenabilité
- Tout le code généré suit les bonnes pratiques de FastAPI