• 20 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 31/07/2019

Testez votre API grâce à Postman

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Comme vous avez dû le remarquer, j'ai jusqu'ici soigneusement évité d'implémenter la requête POST. En effet, lorsque nous créons une méthode utilisant ce verbe HTTP, il n'est pas possible de la tester simplement via le navigateur comme pour une simple requête GET. Nous allons utiliser un logiciel appelé Postman qui permet d'envoyer toutes sortes de requêtes et les personnaliser très finement. Il permet également de gérer l'authentification, les scripts de tests, etc.

Implémentez POST

Commençons par créer la méthode qui permet d'ajouter un produit :

//ajouter un produit
    @PostMapping(value = "/Produits")
    public void ajouterProduit(@RequestBody Product product) {
         productDao.save(product);
    }

@PostMapping : vous pouvez voir qu'ici l'URI indiquée (/Produits) est exactement la même que dans la méthode listeProduits définie au chapitre précédent. Alors, comment Spring sait-il laquelle appeler ? Et bien grâce justement aux annotations @PostMapping et @GetMapping ! Celles-ci indiquent à quel type de requête HTTP  la méthode est associée, POST  ou GET  respectivement. Si on envoie une requête POST "/Produits" c'est la méthode annotée avec @PostMapping qui sera donc appelée.

@RequestBody : Nous avons vu plus tôt comment Spring Boot a configuré Jackson pour convertir les objets Java renvoyés en réponse (Product dans notre cas) en JSON. Ici, nous avons besoin du contraire. Nous allons recevoir une requête POST avec les informations d'un nouveau produit au format JSON. Il nous faut donc constituer un objet Product à partir de ce JSON.

C'est là que @RequestBody vient à la rescousse. Cette annotation demande à Spring que le JSON contenu dans la partie body de la requête HTTP soit converti en objet Java. Comment ?  Spring, qui a déjà tout auto-configuré au début, ira simplement chercher la librairie capable de faire cela et l'utiliser. Dans notre cas c'est Jackson, mais cela pourrait tout à fait être Gson.

La requête JSON est ainsi convertie, dans notre cas, en objet Product puis passée en paramètre à ajouterProduit. Il ne nous reste plus qu'à appeler la méthode save que nous avons déjà créée et le nouveau produit est ajouté.

Testons tout cela, voulez-vous ?

Comprendre Postman

Postman est un logiciel qui se focalise sur les tests des API. Il est devenu très populaire pour tester les Microservices, notamment grâce à sa simplicité et ses fonctionnalités très spécialisées.

Postman existe à ce jour en extension pour Chrome, mais l'éditeur a annoncé la fin prochaine de celle-ci. Je vous recommande donc d'installer le logiciel. L'application est régulièrement mise à jour et l'interface peut donc être légèrement différente de celle présentée dans la suite de ce chapitre.

Figure 35
Interface de Postman (version Chrome)

Voici les principales fonctionnalités à connaitre pour nos tests :

  • ( 1 ) : Ici vous pouvez choisir le type de requête à envoyer : GET, POST, PUT, etc.

  • ( 2 ) : L'URL de l'API.

  • ( 3 ) : Les paramètres à passer avec l'URL. Dans le cas où vous avez des paramètres nommés comme ?prenom=fabien, vous allez pouvoir ajouter dans le formulaire comme paramètre prenom et comme valeur fabien. Ceci se révèle particulièrement utile quand vous avez beaucoup de paramètres qu'il faut organiser.

  • ( 4 ) : Ici vous retrouverez les connections que vous avez créées. Nous y reviendrons.

  • ( 5 ) : Ici vous trouverez tout ce qui constitue une requête Http (header, body, etc.). Vous pouvez à partir de là créer votre requête de façon totalement personnalisée.

Faisons tout de suite un premier test. Lancez le Microservice puis revenez sur Postman et saisissez l'URL http://localhost:9090/Produits. La figure ci-après illustre la requête et le résultat obtenu :

Figure 36
Requête GET avec Postman

Cliquez ensuite sur l'onglet Header. La figure qui suit présente l'en-tête de la réponse HTTP  fournie par votre Microservice.

Figure 37
Visualisation des en-têtes de la réponse HTTP

Vous pouvez remarquer que Spring a réglé la valeur Content-Type sur application/json;charset=UTF-8. Le plus important est le code de réponse en haut à droite, dans ce cas 200. Ce code est particulièrement important pour débugger. Je vous renvoie vers le cours REST pour la signification des différents codes.

Testez POST

Nous allons pouvoir tester à présent notre méthode ajouterProduit :

  • Sélectionnez POST puis ajoutez l'URL http://localhost:9090/Produits

  • Cliquez sur l'onglet Body qui n'est plus grisé, puis sélectionnez raw pour définir manuellement le contenu de la requête Http.

  • Collez ensuite un JSON avec les informations d'un produit, par exemple :

{
  "id": 4,
  "nom": "Poney en bois cracheur de feu",
  "prix": 145
}
  • Sélectionnez à droite JSON à la place de Text afin d'indiquer dans notre requête le type de données que nous envoyons :

    Figure 38
    Création d'une requête de type POST
  • Cliquez sur "Send". Rien ne se passe? C'est normal puisque notre méthode ne retourne rien. Néanmoins, vous pouvez voir que notre Microservice a répondu avec le code 200 OK :

    Figure 39
    Réponse HTTP à la requête POST
  • Vérifions si notre produit a bien été ajouté. Créez un nouvel onglet et faites appel, via GET, à http://localhost:9090/Produits :

    Figure 40
    Requête GET d'affichage des produits

Bingo ;) ! Votre nouveau produit est ajouté. On peut dire que vous avez désormais un Microservice fonctionnel.

Les collections dans Postman

Dans la panneau de gauche vous avez 2 onglets : History et Collections.

  1. Dans History, vous avez l'historique de toutes les requêtes que vous avez exécutées. Vous pouvez y retourner et ré-executer une requête parmi celles déjà essayées.

  2. Les collections sont une façon plus permanente d'organiser et garder des requêtes pour faire des tests. Elle vont vous permettre de regrouper un ensemble de requêtes et de les lancer selon les paramètres et l'ordre de votre choix pour réaliser par exemple un test de scénario.

Commencez par créer une nouvelle collection en cliquant sur le bouton "ajouter collection" :

Figure 41
Bouton de création d'une nouvelle collection

Renseignez ensuite le nom de votre collection :

Figure 42
Interface de création d'une collection

Parmi les onglets proposés, vous avez "Authorization" qui va vous permettre d'ajouter la méthode d'authentification à votre Microservice. Nous y reviendrons dans la prochaine partie du cours. Cliquez sur "Create".

Ajoutez les deux requêtes que nous avons créées en cliquant sur "Save" situé à côté du bouton "Send". Vous pouvez donner un nom à la requête, mais il est plus lisible de laisser le nom par défaut qui est tout simplement l'URL appelée. Choisissez ensuite la collection que vous venez de créer et validez :

Figure 43
Enregistrement d'une requête dans la collection

Vous obtenez alors une collection avec 2 requêtes à gauche. Vous pouvez distinguer les opérations grâce au type : GET, POST, etc...

Figure 44
Liste des requêtes enregistrées

Redémarrez le Microservice afin de réinitialiser la liste des produits puis rendez-vous sur votre collection et cliquez sur la flèche pour développer les opérations possibles. Glissez-déposez les requêtes afin que POST soit avant GET puis cliquez sur "Run" :

Figure 45
Exécution de la collection

Cette fenêtre vous permet de choisir un certain nombre d'options, comme par exemple le nombre de fois où vous souhaitez exécuter les requêtes (champ "Iterations"). Cliquez sur "Run Microcommerce" :

Figure 46
Configuration de l'exécution de la collection

Les requêtes sont alors executées et celles qui ont réussies sont marquées par un carré vert ainsi que les codes de réponses en face :

Figure 47
Résultat de l'exécution de la collection

Si vous souhaitez voir ce qui se passe "sous le capot", dans le cas où une des requêtes n'aurait pas fonctionné, vous pouvez avoir tous les retours via la console Postman. Allez dans "View" puis "Show Postman Console" :

Figure 48
Accès à la console de Postman

Une fois la console lancée, ré-exécutez la collection. Vous pouvez alors naviguer dans le résultat de chaque requête et voir tous les détails sur celle-ci et sur sa réponse :

Figure 49
Affichage des détails dans la console Postman

À noter que vous pouvez choisir l'onglet "raw" pour visualiser les données brutes sans mise en forme.

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