🚨🚨🚨 Ce projet est une Preuve de concept fourni à des fins pédagogiques. Le code doit être optimisé avant d'être employé en production. 🚨🚨🚨
TODO:
- le service auth n'est pas implémenté (signin, signup, signout, verify token...).
- le service gateway est simpliste. Il peut être amélioré.
-
créer les fichiers de variables d'environnement en se basant sur les fichiers modèles nommés .env.example :
-
./secrets/tasks-db-password
-
./gateway-service/.env
-
./tasks-service/.env
-
./tasks-db/.env
-
./rabbitmq/.env
Les services Java ont été initialisés à l'aide de Spring Initializr https://start.spring.io/ avec la configuration suivante :
-
Project : Maven
-
Language : Java
-
Spring Boot : 3.4.0
-
Project Meatadat :
- Group : dev.shrp
- Artifact : nom-du-service
- Name : nom-du-service
- Description : Micro Service nom-du-service
- Package name : dev.shrp.nom-du-service
- Packaging : Jar
- Java : 17
- Dependencies :
- Spring Web
- Spring Data JPA (si le service est connecté à une base de données)
- PostgreSQL Driver (si la base de données est de type PostgreSQL)
-
Pour chaque service Java :
- ajouter un fichier Dockerfile et les variables d'environnement utiles avec un fichier .env à la racine du dossier du service, à référencer dans le fichier compose.yaml
- personnaliser le fichier ./src/main/resources/application.properties pour accéder aux variables d'environnement
spring.application.name=gateway tasks_service=${TASKS_SERVICE}
-
Tutoriel pour le service Gateway : Building a Gateway
docker compose upSans reconstruction des images Docker + activation du mode watch (permet de reconstruire en live les containers en cas de modification du code source)
docker compose up --watchdocker compose up --buildAvec reconstruction des images Docker au lancement (si modification du code source associé) + activation du mode watch (permet de reconstruire en live les containers en cas de modification du code source)
docker compose up --build --watchdocker compose down- curl --request GET
--url http://localhost:8888/tasks - curl --request GET
--url http://localhost:8888/tasks/1 - curl --request POST
--url http://localhost:8888/tasks
--header 'content-type: application/json'
--data '{ "user_id":"f928c455-d2f3-4e30-bf58-178ae041e8c2", "content":"Faire du sport" }'
--
Alexandre Leroux
Enseignant / Formateur
Développeur logiciel web & mobile
Nancy (Grand Est, France)
