No description
Find a file
2024-03-27 17:29:54 +01:00
.idea init 2024-03-27 11:18:57 +01:00
athlete rendu 2024-03-27 17:29:54 +01:00
data done 2024-03-27 15:31:11 +01:00
discipline final 2024-03-27 17:19:37 +01:00
home final 2024-03-27 17:19:37 +01:00
medaille final 2024-03-27 17:19:37 +01:00
sample before rendu 2024-03-27 15:20:10 +01:00
.gitignore oops 2024-03-27 14:17:18 +01:00
docker-compose.yaml final 2024-03-27 17:19:37 +01:00
LICENSE rendu 2024-03-27 17:29:54 +01:00
Makefile rendu 2024-03-27 17:29:54 +01:00
README.md rendu 2024-03-27 17:29:54 +01:00
requirements.txt done 2024-03-27 15:31:11 +01:00
schema.png final 2024-03-27 17:19:37 +01:00

API JO 2024

Sommaire

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.

schema (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.