Dans le cadre d’un projet de refonte du système d'information de la TPE Fromagerie DIGICHEESE, une solution a été développée en utilisant FastAPI, un framework Python moderne et performant conçu pour la création d’API Web.
L’architecture Restful adoptée garantit la modularité, la performance et la sécurité requises pour un système d’information fiable et évolutif.
- Python 3.8+
- Git & GitHub
dev_v1/
│
├── src/
│ ├── main.py # Point d'entrée de l'application FastAPI
│ ├── bdd_config.py # Configuration de la base de données
│ ├── models.py # Modèles SQLAlchemy (tables)
│ ├── schemas/ # Schémas Pydantic (validation des données)
│ ├── routers/ # Définition des routes de l'API
│ ├── services/ # Logique métier (business logic)
│ ├── repositories/ # Accès aux données (Data Access Layer)
│ └── database.py # Initialisation et connexion à la BDD
│
├── test/ # Dossier des tests Pytest
│ └── test_clients.py # Exemple de test unitaire
│
├── .env # Variables d'environnement
├── requirements.txt # Fichier des dépendances Python
├── README.md # Documentation du projet
├── .gitignore # Fichiers/dossiers ignorés par Git
└── .venv/ # Environnement virtuel Python
Dossier | Nom conceptuel | Rôle principal |
---|---|---|
schemas/ | DTO / Pydantic Models | Validation et structure des données |
routers/ | Routers / Controllers | Gestion des routes de l’API |
services/ | Services / Use Cases | Logique métier |
repositories/ | Repositories / DAO | Accès aux données |
Dans chacun de ces répertoires, il est recommandé de créer des fichiers correspondant à chaque entité ou fonctionnalité du projet. Par exemple, dans schemas/, on retrouvera commande.py, client.py, etc... Cela permet une organisation claire et facilite la maintenance du code à long terme.
git clone https://github.com/Tchoumis/dev_v1.git
cd dev_v1
python -m venv .venv
.venv\Scripts\activate
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m pip list
pip install fastapi requests
pip install httpx
pip install pymysql
Créez une base de données nommée fromagerie_com avec votre Système de Gestion de Base de Données (SGDB) préféré (MySQL, PostgreSQL, etc.).
Modifiez la chaîne de connexion dans le fichier src/database.py
ou utilisez un fichier .env
.
Pour démarrer le serveur de développement, exécutez la commande suivante :
uvicorn src.main:app --reload
Cela démarrera le serveur FastAPI via Uvicorn, accessible à l'adresse suivante : http://127.0.0.1:8000
Une fois le serveur démarré, accédez à la documentation interactive générée automatiquement par Swagger à l'adresse suivante :
Cette interface permettra de :
-
Tester les différentes API
-
Visualiser les schémas
-
Comprendre les interactions possibles avec l'API
Si la page Swagger recharge sans arrêt, essayez de : Relancer Uvicorn proprement sur un port différent, par exemple :
uvicorn src.main:app --reload --port 8001
Les tests unitaires ont été réalisés avec Pytest afin d’assurer la qualité et la fiabilité du code.
- Installer Pytest
pip install pytest
Lancer tous les tests
pytest
Lancer un test spécifique Par exemple, pour exécuter uniquement les tests liés aux clients :
pytest test/test_clients.py