• 8 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 08/08/2023

Entraînez-vous en optimisant votre microservice

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 :

  1. Les annotations   @FeignClient  et   @RibbonClient  correctement paramétrées.

  2. Une méthode   etatExpedition  utilisant la notation@PathVariableà l'endroit pertinent.

  3. Une classeExpeditionBeanqui reprend la structure du modèle Expedition.

  4. Une méthode dansClientControllerqui 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 !

Exemple de certificat de réussite
Exemple de certificat de réussite