.idea | ||
athlete | ||
data | ||
discipline | ||
home | ||
medaille | ||
sample | ||
.gitignore | ||
docker-compose.yaml | ||
LICENSE | ||
Makefile | ||
README.md | ||
requirements.txt | ||
schema.png |
API JO 2024
Sommaire
- Architecture
- Production
- Mettre en place l'environnement de développement
- Tests unitaires
- Déploiement
Architecture
3 microServices sont disponibles pour le projet JO 2024:
/
: Page de présentation/athlete
: API Athlètes/medaille
: API Médailles/discipline
: API Disciplines/swagger
: GUI Swagger (servant les assets statiques de swagger). Sinon, chaque sous service a sa propre GUI Swagger à l'adresse/<service>/swagger
.
(Ce schema manque le service "home" d'accueil affichant une page de résumé)
À la racine du site, une page Web est affichée pour présenter le projet et rediriger l'utilisateurs vers les différentes sous API.
Chaque microservice est indépendant et peut être déployé séparément. Ils sont définis en Python avec Flask et stockent leur données dans des fichiers JSON.
Servi de façon statique est disponible une GUI Swagger (servant le fichier static/swagger.json
) pour chaque microservice. Celle-ci est accessible à l'adresse /swagger
.
Production
Pour lancer les serveurs de production, il suffit de lancer les commandes suivantes:
docker compose up -d
Cette commande va lancer les 3 microservices dans des conteneurs Docker. De plus, un conteneur Traefik est lancé pour servir de reverse proxy et de load balancer. Il est configuré pour rediriger les requêtes vers les microservices en fonction du sous dossier demandé.
Pour accéder à la GUI Swagger, il faut ajouter /athletes/swagger
à l'URL ou /medailles/swagger
ou /disciplines/swagger
.
Le compose est configuré pour que traefik utilise le port 8082
.
Chaque service expose en interne le port 5000
.
Mettre en place l'environnement de développement
Make est utilisé pour automatiser les tâches de développement. Pour installer les dépendances, lancer les tests et lancer les serveurs de développement, il suffit de lancer les commandes suivantes:
make setup
Avant de rendre le projet, la commande doAll
est utilisée pour vérifier le fonctionnement en bout en bout du projet.
make doAll
Tests unitaires
Pour lancer les tests unitaires, il suffit de lancer la commande suivante:
make test
La librairie pytest
est utilisée pour lancer les tests unitaires. Le client Flask est utilisé pour simuler les requêtes HTTP, et les réponses sont testées pour vérifier qu'elles sont correctes (code d'erreur, contenu). De plus, à l'aide de Pydantic, les données sont validées pour vérifier qu'elles sont correctes.
Normalement, les tests devraient tous être passants, sans erreurs ou avertissements.