# 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 : ```bash 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 : ```txt 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](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 : ```bash 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 : ```bash python3 -m pytest -v ```