TLDR (Too long didn’t reed)

Parce que je suis le premier à rouspéter contre ces articles qui posent une question ligne 1, promettent une réponse ligne 2 et y répondent (parfois) à la dernière ligne, voici notre solution en bref :

Postman, c’est quoi ?

Si vous n’êtes pas familier avec Postman, il s’agit d’un outil permettant de requêter une API avec une interface graphique sans passer par le front (web ou application IOS/Android). C’est un outil nécessaire en tant que développeur API pour pouvoir tester correctement son API avant de la mettre en ligne au service d’un front. Il s’agit également d’un outil précieux pour les QA un peu techniques, leur permettant ainsi de qualifier un bug avec plus de précision en vérifiant séparément le comportement du front et du back.

Ce genre d’outil, en plus de pouvoir juste et simplement requêter une API, offre des fonctionnalités nécessaires quand on travaille quotidiennement avec ces besoins : collections de requêtes, variables d’environnements, tests automatisés après les requêtes, exécutions de scripts avant les requêtes, configuration de l’authentification (JWT, OAuth 2.) au niveau de la collection, etc.

Postman a depuis longtemps des concurrents mais il est vrai que c’est de loin celui qui offre le plus de fonctionnalités et jusqu’à maintenant sans inconvénients et de manière gratuite. Que demander de plus alors ? Eh bien que cela reste ainsi. Mais bien sûr, vous avez lu le début de l’article, ce n’est pas le cas. Mais quel est le problème alors ?

Le problème avec Postman

Depuis peu, Postman ne permet plus d’être utilisé sans compte. Bon, si vous êtes comme moi et que créer un compte sur tous les outils que vous devez utiliser vous agace, c’est déjà un problème, mais pas au point d’arrêter d’utiliser cette solution. Le vrai problème commence maintenant que vous avez un compte.

Vous ne pouvez pas utiliser Postman sans que cela synchronise automatiquement vos données (collections, environnements avec les valeurs des variables, scripts, etc.) sur leurs serveurs. Pratique pour ne pas risquer de perdre son travail et pour retrouver facilement toutes ses données en cas de réinstallations. Et très pratique pour partager ses collections en mode collaboratif sans devoir exporter et importer les collections et environnements à chaque changement. Oui, c’est vrai. Mais ! Vous n’avez pas le choix.

Le SI de votre entreprise n’est peut-être pas très favorable a ce qu’autant de travail, de données, parfois sensibles (on parle ici potentiellement d’adresse IP des machines hébergeant les API, des mots de passe nécessaires à la configuration ou l’utilisation d’API comme une API Key par exemple, etc.) soient stockés en dehors de l’entreprise. Et c’est là que Postman enfonce le clou.

Les données sont stockées aux États-Unis uniquement, pas de serveur en Europe. Et pire encore ! Des fuites récentes ont affirmé que Postman stockait toutes les données en clair dans leurs bases de données. Ce qui n’est pas idéal au niveau de la sécurité !

Mais alors que faire ? Eh bien il faut changer d’outil. Voyons ensemble les alternatives aux noms aussi divers que variés.

Postman : les alternatives

Postman : Gif tiré d'une diffusion télé où un homme assis face caméra annonce l'arrivée du premier choix de draft.
Au revoir Postman, bonjour…. ?

Thunder Client

Thunder Client est une extension VS Code qui fournit les fonctionnalités attendues gratuitement. Les configurations les plus avancées sont bloquées derrière un abonnement Premium mais rien de nécessaire pour la majorité de nos usages chez Amiltone. Les données sont stockées par défaut en local. De l’import et de l’export sont disponibles, ainsi que de la synchronisation Git.

S’il a l’inconvénient de nécessiter l’installation de VS Code, IDE pour développeur à la base, il reste facile à prendre en main et l’intégralité du reste de VS Code peut être facilement ignorée si on veut utiliser uniquement Thunder Client.

Hoppscotch

Hoppscotch est un outil open-source. C’est une bonne option même s’il manque quelques features et corrections de bugs qui arriveront vite on espère. Des fonctionnalités prometteuses arrivent comme le self-hosting (permettant de répondre aux problématiques liées à l’utilisation des synchronisations et sauvegardes des données Cloud).

Il dispose d’une extension pour Chrome et pour Firefox.

Insomnia

Insomnia propose quelques options uniques comme un paramétrage fin du HTTP utilisé par exemple. Il dispose également d’une extension Chrome. Attention, pour l’instant il n’est visiblement pas possible de l’utiliser sans synchronisation des données avec leurs serveurs.

HTTPie

C’est un outil simple qui se veut plus léger et moins complexe mais également avec moins de fonctionnalités.

ARC

Advanced REST Client est un outil avec une interface qui mériterait d’être un peu revue et qui manque de quelques fonctionnalités mais qui est gratuit, open-source, et qui propose une extension Chrome et des fonctionnalités que d’autres peinent à proposer (désactivation de la synchronisation Cloud, configuration de HTTP, scripts avancés, etc.).

RapidAPI

RapidAPI est un outil exclusivement pour Mac. La plupart des autres outils proposent également des versions pour Mac ou proposent des versions online, ce qui peut limiter l’intérêt d’un outil Mac exclusif.

Milkman

Il propose des plugins intéressants pour du test comme SQL/JDBC mais son installation/manipulation peut être un peu laborieuse.

Bruno

Bruno est une alternative open-source qui propose les fonctionnalités de base attendues. Un peu plus complet que HTTPie, il manque encore d’un peu de maturation.

Notre choix : Thunder Client

Si nous avons choisi Thunder Client, la raison est en réalité toute simple, c’est le seul outil à proposer gratuitement toutes les fonctionnalités qui nous semblent nécessaires :

  • collections et environnements
  • stockage en local uniquement
  • import et export de collections et d’environnements
  • configuration de l’authentification au niveau de la collection

C’est surtout ce dernier point qui a fini par mettre KO la plupart des alternatives citées ci-dessus (comme Insomnia). À part HTTPie qui est, par volonté et design, simpliste, il est dommage qu’autant d’outils ne proposent pas (ou pas encore) ces fonctionnalités.

Gérer la passation avec Postman

Heureusement pour nous, et pour vous, presque tous les outils qui proposent à la fois un système de collections et d’environnements, et un système d’import et d’export proposent d’importer vos données depuis des exports Postman directement. Passer d’un outil à un autre est donc plutôt aisé une fois la prise en main effectuée.

Postman et Thunder Client, conclusion !

Chez Amiltone, nous sommes passés à Thunder Client, mais nous continuons à surveiller des outils open source comme Hoppscotch ou Bruno dans l’attente de les voir s’étoffer, s’affiner et leurs quelques bugs actuels se corriger. Il n’est également pas impossible que Postman ajoute un jour la possibilité de ne pas synchroniser ses données avec leurs serveurs. L’affaire reste à suivre donc !

En espérant vous avoir aidé à y voir plus clair et à faire votre choix si comme nous, vous avez décidé de changer d’outil.

Retrouvez d’autres conseils Tech’ et IT sur notre Tech’ Place !