Ce projet est une API REST simple développée avec Flask pour gérer une collection de livres, utilisant PostgreSQL comme base de données et Docker pour faciliter la gestion des environnements.
Recommandations d'outils complémentaires :
- Installer Python
- Installer Docker Desktop
- Installer Make for Windows (GnuWin32) ou utiliser Chocolatey :
choco install make - Ajouter
makedans le PATH système pour pouvoir exécuter les commandesmakedans un terminal (cmd ou PowerShell)
- Vérifier que
python3,pip,docker,docker-composeetmakesont installés
git clone [email protected]:esperluet/esme_webservice_flask.git
cd esme_webservice_flaskmake docker-buildL'API sera accessible sur http://localhost:5009.
Note : Si vous souhaitez uniquement démarrer l'application sans reconstruire l'image Docker :
make docker-up
make docker-down📦 Persistance des données : Les données PostgreSQL sont stockées dans un volume Docker nommé
postgres_data. Elles sont donc conservées même après l'arrêt ou la suppression du conteneur.De plus, les fichiers de migration Alembic sont synchronisés avec le dossier local
./migrations/, ce qui permet de conserver l'historique des migrations et de les versionner dans Git.
GET /booksPOST /books
Content-Type: application/json
{
"title": "Le Petit Prince",
"author": "Antoine de Saint-Exupéry",
"published_at": "1943-04-06"
}GET /books/<book_id>PUT /books/<book_id>
Content-Type: application/json
{
"title": "Le Petit Prince (Édition spéciale)",
"published_at": "1943-04-07"
}DELETE /books/<book_id>| Commande | Description |
|---|---|
make docker-build |
Construit et démarre les conteneurs Docker |
make docker-up |
Démarre les conteneurs existants |
make docker-down |
Arrête et supprime les conteneurs |
make docker-clean |
Nettoie les images Docker inutilisées |
make db-init |
Initialise la base de données (crée les tables) |
make db-migrate |
Crée une migration à partir des modifications du modèle |
make db-upgrade |
Applique les migrations à la base de données |
make db-reset |
Réinitialise complètement la base de données |
make help |
Affiche toutes les commandes disponibles |
- Flask : Framework web en Python pour la création de l'API REST.
- PostgreSQL : Base de données relationnelle pour le stockage des livres.
- Docker & Docker Compose : Gestion des environnements et conteneurisation.
- Makefile : Automatisation des commandes et simplification des tâches.
- Si la commande
maken’est pas reconnue, ajoutez manuellement le dossier contenantmake.exeà votre variable d’environnementPATH. - Il est recommandé d’utiliser Git Bash, PowerShell ou WSL pour éviter les problèmes liés aux chemins ou à l'encodage des commandes dans le terminal.
- En cas d’erreur lors de l’exécution des commandes Makefile, vérifiez que Docker est bien lancé et que les conteneurs sont en cours d’exécution (
make docker-up). "# web"