Développement

Mockez vos APIS avec PostMan

Apprenez à mocker une API avec Postman afin de simuler des réponses d’APIs externes, tester votre application et gérer les erreurs, même sans dépendances disponibles.

Par

Intro

Durant la vie du projet, il est possible que votre feature soit disponible ou en cours de réalisation avant les autres APIs dont vous êtes dépendant.

Vous désirez toutefois, continuer à développer ou tester votre API avant la mise en ligne des APIs externes ?

Il est alors possible de “mocker une application”, c'est-à-dire simuler une réponse d’un appel API externe.

De ce fait, mon API appellera une autre API, dite externe, qui donnera la liste des films avec comme body : le titre + un booléen pour savoir s’il y a les sous-titres.

Mon API affichera donc après filtrage uniquement les films sous-titrés.

Sauf que l’API dont on dépend, donnant la liste des films, n’est pas encore disponible.

On va donc simuler une réponse afin de pouvoir déjà mettre en place l’algorithme pour filtrer les films uniquement sous-titrés.

Installez PostMan

🖇️ Download Postman | Get Started for Free

Paramétrez Postman

  • Configurez votre sidebar
  • Activez Mock servers

Vous devriez, après cette opération, voir apparaître une nouvelle icône à gauche, nommée Mock servers.

Créez votre premier Mock servers

Cliquez sur mock servers et le “+” en haut à gauche de l’écran, ou bien, sur create mock server.

Vous devriez avoir ceci :

  1. Cochez Create a new Collection
  2. Dans mock server name, nommez votre mock (exemple : listeFilm)
  3. Dans request method sélectionnez la méthode utilisée par votre API (GET, POST, …)
  4. request url sera l’url que l’API appellera (sans le domaine)

    Par exemple :

    @GetMapping(path = "/films")
    Flux<Films> films();
  5. Dans Response code, mettez le code réponse de l’API attendu.
  6. Dans Response body, mettez le json que vous souhaitez recevoir, par exemple :

[{
	"title": "Titanic",
	"subtitles": true

},
{
	"title": "Armageddon",
	"subtitles": false

}]
  1. Dans simulate a fixed network delay, vous pouvez simuler un temps de réponse.
  1. Une fois paramétré, vous pouvez cliquer sur create mock server

Testez votre mock avec PostMan

Vous pouvez tester votre API mockée directement avec Postman, en cliquant sur le lien (point numéro 3)

Vous allez ensuite avoir ceci :

Si vous envoyez la requête, vous allez recevoir une erreur.

C’est normal. Souvenez vous, l’URL appelée est : https://domaine.mock.pstmn.io/films

  • Rajoutez /films et rejouez la requête.
  • Vous allez bien recevoir votre json.

Mettre son mock sur son API

Vous allez pouvoir récupérer l’URL de votre mock. Pour ceci, allez dans mock servers + sélectionnez votre mock + faites un copier-coller du lien :

Dans votre application yaml ou yml mettez l’url de votre mock :

Simuler une erreur

Vous allez certainement mettre en place un “handler” afin de gérer les erreurs en appelant les APIS externes.

Il est possible de mock une erreur. Souvenez vous, on peut choisir le code retour de l’API mockée.

De ce fait, on va simuler une panne de l’API.

  1. Ajoutez un nouveau mock
  1. On repend le même request méthod et request URL qu’avant sauf que :
    • Notre Response code sera : 500,
    • et mock server name s’appellera : myFilmsKO
  1. PostMan va générer une nouvelle url, cet URL renverra une 500.

    Pour tester sur votre API, il suffira juste de changer l’url précédent par le nouvel URL.

Voici le rendu si on appelle cet URL :

Retrouvez l’URL rendant un résultat sans erreur

Si vous désirez retrouver l’url du mock donnant une 200 :

  • Dans la liste des mock servers, cliquez sur myFilms. Vous trouverez l’url associée.

Multiples liens mock

Pour éviter d’avoir plusieurs liens, on peut générer pour un domaine plusieurs liens.

Dans add request , vous pouvez ajouter pour le même lien plusieurs méthodes différentes avec un résultat différent.

Les autres articles à explorer