app | ||
docker | ||
pytest | ||
docker-compose.yml | ||
README.md | ||
swagger.yml |
Guide utilisateur
Solutions techniques
Architecture en micro-services
Chaque endpoint de l'application ("docs", "athletes", "medals" et "sports") est un conteneur docker différent. Ces conteneurs utilisent Flask comme framework web.
Devant ces conteneur, un reverse proxy Traefik a été déployé. Il est configuré via les labels des conteneurs dans le docker-compose.
Explication des micro-services
-
Les services d'API : chaque conteneur s'occupe d'une partie. Les différents verbes HTTP permettent de lister les différents objets, d'en ajouter de nouveaux, d'en afficher un en particulier, de le modifier et de le supprimer.
-
Le service Swagger : Il est basé sur la définition OpenAPI en YAML.
Démarrage rapide
Un docker-compose est fourni à titre d'exemple. Il permet de rapidement déployer le système d’administration des JO Paris 2024. Vous pouvez utiliser la commande suivante :
curl -o docker-compose.yml https://git.gnous.eu/Anrab35/SAE410_TP2/raw/branch/main/docker-compose.yml
docker compose up -d
Vous devez avoir les services suivants de lancés :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
119dbbc12392 git.gnous.eu/anrab35/sae410_medals:latest "python3 medals.py" 22 minutes ago Up 22 minutes (healthy) 5000/tcp JO_medals
67d8e945bc8e git.gnous.eu/anrab35/sae410_athletes:latest "python3 athletes.py" 22 minutes ago Up 22 minutes (healthy) 5000/tcp JO_athletes
393a2e73ab59 git.gnous.eu/anrab35/sae410_docs:latest "python3 docs.py" 22 minutes ago Up 22 minutes 5000/tcp JO_docs
d7b5d3455cb4 git.gnous.eu/anrab35/sae410_sports:latest "python3 sports.py" 22 minutes ago Up 22 minutes (healthy) 5000/tcp JO_sports
05225e266ec6 traefik:v2.11 "/entrypoint.sh --lo…" 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp traefik
La documentation complète de l'API est maintenant disponible à l'adresse http://localhost/docs
Utilisation de la suite de tests
Pour utiliser les tests unitaires, il faut commencer par cloner le dépôt et installer les dépendances :
git clone https://git.gnous.eu/Anrab35/SAE410_TP2.git
cd SAE410_TP2/pytest
python3 -m pip install -r requirements.txt
Les tests sont lancés via la commande suivante :
python3 -m pytest -v