Académique Documents
Professionnel Documents
Culture Documents
Dans le TP précédant, vous avez créé votre premier microservice qui va servir à gère des
produits. Vous avez vu comment générer le microservice et comment l’exécuter.
Nous avons maintenant besoin de changer le microservice généré pour être capable de gérer des
produits. Pour cela, il doit pouvoir exposer une API REST qui propose toutes les opérations
CRUD (Create, Read, Update, Delete).
Notre microservice va devoir être RESTful, et donc pouvoir communiquer de cette manière :
▪ Une classe Produit qui représente les caractéristiques d'un produit (nom, prix, etc.) ;
▪ Un contrôleur qui s'occupera de répondre aux requêtes CRUD et de faire les opérations
nécessaires.
Création du Contrôleur :
1- Faites un clic droit sur le package principal, puis New -> Class
2- Complétez l’espace package pour avoir
« com.ecommerce.microcommerce.web.controller »
3- Entrez le nom de la classe : « ProductController » puis validez.
4- Le nouveau package web.controller sera créé ainsi que le contrôleur
« ProductController ».
Page 1 sur 4
5- Nous allons commencer par indiquer à Spring que ce contrôleur est un contrôleur REST.
Ajoutez l’annotation adéquate au-dessus de la déclaration de la classe. Cette annotation
indique que cette classe va pouvoir traiter les requêtes que nous allons définir (GET,
POST, etc.). Elle indique aussi que chaque méthode va renvoyer directement une réponse
JSON à l'utilisateur, sans passer par une vue.
6- Créez une simple méthode listeProduits qui retourne une string. Comme il n’existe pas
encore de produits, cette méthode va retourner une simple phrase pour tester.
7- Ajoutez une annotation @GetMapping("/Produits") au-dessus de cette méthode.
9- Avec le même principe, vous allez créer une deuxième méthode « afficherUnProduit »
qui renvoi les détails d’un seul produit. Pour cela, on a besoin que la méthode réponde à
des URLs dynamiques qui indiquent chaque fois l’identifiant du produit à afficher. Vous
allez donc utiliser la notation {id} avec l’annotation @GetMapping. Cette notation
permet d'indiquer que cette méthode doit répondre uniquement aux requêtes avec une
URI de type /Produits/25, par exemple. Vous devez aussi utiliser l’annotation
@PathVariable avec les paramètres de la méthode pour récupérer l’identifiant du produit.
10- Testez cette nouvelle méthode avec l’URL : http://localhost:9090/Produits/25
Création du Modèle :
Page 2 sur 4
Nous avons jusqu’à ici répondu aux appels REST avec des chaines de caractères du genre « Un
exemple de produit » ou « Vous avez demandé un produit avec l’id 25 ». Ceci revient au fait
qu’on n’a pas encore un Modèle qui représente les données (ou plus anciennement Bean, ou
POJO, pour Plain Old Java Object).
Un Model est une classe classique qui doit être "sérialisable" et avoir au minimum :
Vous allez par la suite générer un constructeur sans arguments et les getters et les setters
pour toutes les propriétés. Pour les tests, vous allez ajouter un constructeur avec toutes les
propriétés d’un produit afin d'obtenir des instances de produits préremplies avec des
informations de tests.
Page 3 sur 4
13- Modifiez le code de la méthode « afficherUnProduit » pour générer un produit et le
renvoyer lorsque la méthode est appelée avec un identifiant.
14- Testez maintenant la méthode avec l’URL : http://localhost:9090/Produits/25
Page 4 sur 4