Postman, c’est cool
Si vous avez déjà eu à créer ou à travailler avec des API, il y a de fortes chances que vous ayez déjà entendu parler de Postman. Peut-être même que vous vous en servez au quotidien.
Pour celles et ceux qui l’ignorent, Postman est une application de gestion de requêtes API très populaire. Elle permet aux développeurs de tester, développer et documenter les API. Rien que ça.
C’est une application qui offre une interface graphique pour construire des requêtes HTTP et les tester, facilitant grandement la vie des développeurs.
Disponible en version logiciel de bureau pour Windows, Mac et Linux mais aussi en version application web, elle sera aussi bien le couteau suisse des développeurs seuls que des équipes de développement. Alors concrètement, qu’est-ce qu’elle fait de si cool que ça cette appli ?
Gestion des requêtes HTTP
Comme mentionné plus tôt, Postman permet aux développeurs de requêter et tester les API en envoyant des requêtes HTTP.
Les requêtes HTTP peuvent être de différents types, tels que GET, POST, PUT, DELETE, etc. Les développeurs peuvent définir les URL à appeler, les headers et les paramètres pour leurs requêtes, puis envoyer celles-ci pour obtenir une réponse de l’API.
Là où ça devient intéressant, c’est que Postman permet aux développeurs de sauvegarder leurs requêtes et de conserver l’historique de leurs appels, ce qui est très pratique si l’on souhaite les retrouver plus tard, effectuer une même requête en ne changeant que certains paramètres d’appels, ou si l’on doit à nouveau travailler sur une sombre API mal documentée que l’on avait tant bien que mal réussi à requêter correctement 6 mois auparavant.
A noter : La requête sauvegardée l’est avec l’ensemble des paramètres utilisés : Paramètres, Headers, Body etc.
Gestion des collections et environnements
Autres possibilités qu’offre Postman : pouvoir organiser les requêtes enregistrées en collection et définir des environnements.
Les collections permettent aux développeurs de regrouper des requêtes HTTP en un seul emplacement. Cela est particulièrement utile pour regrouper des requêtes portant sur une thématique ou un endpoint spécifique.
Cerise sur le gâteau : Il est possible de lancer l’intégralité d’une collection Postman en cliquant sur un simple bouton, ce qui lancera les requêtes de votre collection une à une, dans l’ordre que vous avez défini. Vous avez ainsi la possibilité de simuler un scénario dans lequel s’enchaînent plusieurs requêtes HTTP et ainsi de vérifier que tout se passe comme prévu !
Vous avez un besoin plus complexe, comme récupérer la réponse de l’une de vos requêtes et d’envoyer cette réponse dans la requête suivante ? Aucun problème, les environnements sont là pour ça.
Les environnements permettent aux développeurs de définir des variables pour leur requête. Et ce qui est chouette, c’est que vous pouvez mettre ce que vous voulez dedans.
Les variables d’environnement peuvent être utilisées dans n’importe quelle requête HTTP et peuvent être facilement remplacées par des valeurs spécifiques que vous pouvez définir soit vous-même, soit de manière automatique avant ou après l’exécution d’une requête.
Cas d’utilisation typique : Vous effectuez une première requête d’authentification pour récupérer un token, vous stockez ce token dans une variable et vous utilisez cette variable comme paramètre d’appel de vos requêtes suivantes.
Les environnements peuvent également être utilisés pour basculer facilement entre les différents environnements de développement, de test et de production.
Et en pratique ?
Exemple : Nous allons créer un environnement de test, avec une variable adresseIP, puis envoyer deux requêtes HTTP sur les APIs suivantes :
https://api.ipify.org?format=json : Qui permet de récupérer l’adresse IP qui envoie la requête
https://ipinfo.io/{Adresse_IP}/geo : Qui permet de géolocaliser l’adresse IP passée dans l’URL
Le but de cet exemple est simple : Récupérer une adresse IP via le premier appel, le stocker dans une variable d’environnement, puis utiliser cette variable dans le second appel. Tout cela de manière automatique.
Première étape, créer notre environnement et une variable « adresseIP » :
Deuxième étape, écrire un bout de code JavaScript dans l’onglet « Tests » de notre requête (sur lequel on reviendra un peu plus tard) afin d’affecter la valeur retournée par le premier appel API dans notre variable « adresseIP » :
A noter : L’onglet « Tests » n’est pas forcément parlant, car il permet dans les faits de saisir et d’exécuter du code JavaScript après réception de la réponse de notre requête HTTP, et non pas seulement d’écrire des tests.
Troisième étape, nous allons utiliser notre variable « adresseIP » pour l’utiliser dans notre deuxième requête API.
Et c’est prêt !
On pourrait très bien choisir d’appeler les requêtes une à une, dans l’ordre, mais pour montrer une fonctionnalité supplémentaire de Postman nous allons utiliser l’exécution automatique des collections :
Grâce au « Collection Runner », cette fonctionnalité qui vous permet de lancer l’ensemble des requêtes d’une collection, vous allez pouvoir vérifier si vos requêtes API sont correctes et si les réponses que vous obtenez satisfont vos tests ou non.
Le Collection Runner offre même la possibilité de jouer avec quelques petits paramètres, comme le nombre d’itération que vous souhaitez (soit le nombre de fois que votre collection de requêtes Postman va s’exécuter) et le délai d’attente entre chacune des requêtes de votre collection. Mieux encore, si votre besoin est plus complexe, vous avez la possibilité d’importer un fichier de données en entrée, de programmer vos exécutions automatiques de manière périodique ou de l’intégrer à votre pipeline de livraison continue.
Fin de la première partie !
Je sais, vous avez l’eau à la bouche mais c’est déjà bien assez pour un premier article. Dans un second article, nous aborderons la rédaction des tests avant ou après requête en utilisant du Javascript, et les possibilités qu’offre Postman en terme d’automatisation et d’intégration (notamment avec des outils de déploiement en continu).
Rien que ça.
Stay tuned 🙂
Guillaume Agdag
Chef de projet
Proxiad Axe Seine