Find a file
2024-03-27 17:47:55 +01:00
app Cleaning & README 2024-03-27 17:30:48 +01:00
docker First commit 🎉 2024-03-27 17:04:51 +01:00
pytest Cleaning & README 2024-03-27 17:30:48 +01:00
docker-compose.yml First commit 🎉 2024-03-27 17:04:51 +01:00
README.md Updating README 2024-03-27 17:47:55 +01:00
swagger.yml First commit 🎉 2024-03-27 17:04:51 +01:00

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 dadministration 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