Optimisez votre microservice
Dans cette activité, vous allez créer un microservice pour gérer les expéditions des commandes. Ce microservice permettra de créer l'expédition d’une commande, puis de faire évoluer l’état de celle-ci (en préparation, expédiée, livrée).
Vous allez réaliser cette activité en 2 parties. Dans un premier temps, vous allez créer un microservice pour gérer les expéditions. Puis vous allez créer une page pour le suivi de la commande côté client.
Partie 1 : créez un nouveau microservice
1- Créez un nouveau microservice et nommez-le microservice-expedition
. Ce microservice doit :
intégrer les starters web, Actuator, JPA et H2 ;
avoir un nom déclaré ;
écouter le port 9006.
2- Créez une classe Expedition dans un package appelé model avec comme attributs : id
, idCommande
et etat
.
3- Créez une méthode qui répond aux requêtes de type POST, et qui permet d’ajouter une nouvelle expédition à la base de données.
Par exemple, si vous exécutez une requête POST avec le JSON suivant :
{
"id": 1,
"idCommande": 3,
"etat": 1
}
Vous devriez obtenir ce résultat en base de données :
4- Créez une méthode qui permet de récupérer une expédition par son ID.
5- Créez une méthode qui permet de mettre à jour une expédition.
Partie 2 : interface de visualisation
Dans ClientUI, créez une page qui affiche l’état de la commande.
Pour cela :
1) Ajoutez Ribbon à microservice-expedition.
2) Pour faire appel à microservice-expedition, vous devez utiliser Feign.
3) Ajoutez Eureka à Microservice-expedition.
4) Faites les modifications nécessaires afin que les requêtes générées par Feign via le proxy d’expédition passent par ZUUL.
Quand vous visitez http://localhost:8080/suivi/1, vous devez avoir un résultat semblable à celui-ci :
Vérifiez votre travail
Créez des microservices exposant une API REST pour les opérations CRUD et configurez-les
L'implémentation de l'exercice 1 doit répondre aux critères suivants :
Une classe DAO, un model et un contrôleur sont créés.
Les trois méthodes créées répondent à POST, GET et PUT.
Le nom du microservice et le port sont définis dans application.properties.
Les opérations fonctionnent quand on teste avec Postman.
Pour valider qu'une classe DAO, un model et un contrôleur ont été créés, vérifiez les classes :
dao/ExpeditionDAO
;model/Expedition
;web/controller/ExpeditionController
.
Conformément aux critères, vérifiez également que :
les trois méthodes créées répondent à POST, GET et PUT ;
le nom du microservice et le port sont définis dans application.properties ;
les opérations fonctionnent quand on teste avec Postman.
Faites communiquer les microservices grâce à Feign et créez des classes proxy
Étudiez le code de l'exercice 2, vous devez créer une classe proxy dans ClientUI. Celle-ci doit comporter :
Les annotations
@FeignClient
et@RibbonClient
correctement paramétrées.Une méthode
etatExpedition
utilisant la notation@PathVariable
à l'endroit pertinent.Une classe
ExpeditionBean
qui reprend la structure du modèle Expedition.Une méthode dans
ClientController
qui fait appel à la classe proxy pour récupérer une expédition.
Vérifiez notamment la classe MicroserviceExpeditionProxy.
1) Les annotations doivent être paramétrées de la manière suivante :
@FeignClient(name = "zuul-server")
@RibbonClient(name = "microservice-expedition")
2) La méthode etatExpedition
doit comporter la bonne notation du paramètre, au format @PathVariable("id")
.
De plus, la classe ExpeditionBean doit reprendre la structure du modèle Expedition.
Enfin, une méthode de la classe ClientController doit faire appel à la classe proxy pour récupérer une expédition.
Mettez en œuvre Ribbon et Eureka et utiliser-les avec ZUUL
Vérifiez que les critères suivants sont tous respectés :
Le starter Ribbon et Eureka sont ajoutés dans le pom.xml de microservice-expedition.
L'annotation
@EnableDiscoveryClient
est ajoutée à MicroserviceExpeditionApplication.L’appel de l’URL
http://localhost:8080/suivi/1
retourne le résultat attendu.
Dans le chapitre suivant, vous allez pouvoir tester vos connaissances avec un quiz. Bonne chance !