mirror of
https://github.com/Anrab35/SAE410_TP2.git
synced 2024-05-20 09:28:35 +00:00
47 lines
2.8 KiB
Markdown
47 lines
2.8 KiB
Markdown
# 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
|
||
``` |