Pour surveiller correctement votre API, vous aurez souvent à utiliser plusieurs requêtes HTTP. En général, vous mettez en place une séquence de requêtes, où chaque nouvelle requête utilise une ou plusieurs données extraites d'une requête précédente pour effectuer sa tâche.

Les raisons possibles à vouloir exécuter une séquence de requêtes HTTP :

  • Votre API nécessite un accès authentifié. Pour appeler une méthode dans l'API réelle, un client API doit d'abord s'authentifier (par exemple en utilisant Authentification OAuth).
  • Vous voulez tester un scénario fonctionnel dans votre API qui comprend plusieurs étapes généralement exécutées dans un certain ordre par vos utilisateurs finaux.
  • Une de vos requêtes HTTP renvoie un redirect à une URL différente, mais avant d'effectuer la redirection vous souhaitez inspecter cette réponse.

Pour tous ces scénarios, le Multi-step API Monitoring est un excellent choix!

Un scénario API peut n'avoir qu'une seule étape au départ, mais vous pouvez ajouter d'autres étapes et même étendre vos scénarios plus tard. Vous avez le contrôle total sur le contenu complet de la requête HTTP. Quelques caractéristiques :

Grâce à ces caractéristiques vous vous assurez que votre API se comporte correctement et fonctionne dans les limites que vous spécifiez. Une telle approche pas à pas vous permet de commencer à configurer des scénarios très puissants sans ajouter de complexité. Si vous savez comment votre API doit se comporter, vous n'avez pas besoin de compétences en programmation pour démarrer le API monitoring. 

Création d'un moniteur API à plusieurs étapes

Pour ajouter un moniteur API à plusieurs étapes :

  1. Sélectionner + Ajouter un moniteur du menu Moniteurs.
  2. Sélectionner API multi-étapes de la liste Type.
  3. Donnez un Nom à votre moniteur.
  4. Passez à l'onglet Étapes pour saisir les détails de chaque étape

Votre nouveau moniteur a déjà une étape (vide). Allez-y, cliquez sur le bouton + Ajouter une étape pour ajouter des étapes supplémentaires Vous verrez que la liste s’agrandit. Cliquez sur une étape pour modifier son contenu. Pour supprimer une étape, cliquez sur le bouton Supprimer l'étape qui apparaît lorsque vous déplacez le pointeur de la souris sur la liste des étapes.

De même, cliquez sur le bouton Dupliquer l'étape pour créer une copie d'une étape existante.


Configuration d'une étape

Regardez maintenant la première étape de notre moniteur, vous remarquerez deux onglets sur le côté droit de l'écran : Requête et Réponse. Passons-les en revue.

Requête

Request in Multi-step API Monitoring

L'onglet Requête contient toutes les données nécessaires à cette étape pour effectuer la requête HTTP réelle. Au minimum :

  1. Choisissez la méthode HTTP appropriée (soit GET, POST, PUT, ou DELETE. Si vous avez besoin d'une méthode différente, contactez nous).
  2. Renseignez l'URL pour la requête. Utilisez une URL complète, y compris le type (https:// ou http://), le nom de domaine et le chemin de votre API, ainsi que tous les paramètres de chaîne de requête que vous souhaitez inclure.
  3. Si vous voulez, donnez une courte description de cette étape. Cette description apparaîtra dans les résultats de la vérification du moniteur.

Corps de requête

Lorsque vous spécifiez une requête POST ou PUT, le champ Corps de requête apparaît. Indiquez les données que vous souhaitez envoyer dans le cadre de la requête (très probablement des données JSON, données XML ou données de formulaire encodées). Dans la plupart des cas, votre serveur s'attend à ce que vous spécifiez le format des données que vous envoyez afin qu'il sache comment lire et traiter ces données. Pour ce faire, vous devez ajouter une valeur  Content-Type dans l'en-tête de requête comme décrit dans le paragraphe suivant.

En-tête de requête

Une requête HTTP contient généralement un en-tête de requête pour spécifier le format des données envoyées ou pour décrire le type de réponse attendu. Par exemple, pour ajouter l'en-tête Content-Type mentionné plus haut, procédez comme suit:

  1. Cliquez sur le bouton Ajouter un request header pour ajouter un nom et une valeur.
  2. Mettez Content-Type pour le nom.
  3. La valeur d'en-tête appropriée dépend des données que vous envoyez. Les types de contenu les plus courants sont application/json pour les données JSON, text/xml pour les données XML, et application/x-www-form-urlencoded pour les données de formulaires web.

De même, si votre API exige une authentification, rajoutez un en-tête, include a header Authorization avec les données appropriées dans le champ Valeur.

Authentification

De nombreuses API sont protégées et ne sont accessibles qu'en fournissant des informations de connexion. Si votre API utilise l'authentification au niveau du protocole HTTP, choisissez votre type d'authentification (Basic, NTLM ou Digest) et renseignez le nom d'utilisateur et le mot de passe correspondants. Sinon, vous pouvez également configurer l'authentification basée sur OAuth en utilisant des étapes distinctes. Plus d'informations ici sur la configuration de l'authentification intégrée ou personnalisée.

Response

Variables in Multi-step API Monitoring

L'onglet Réponse contient toutes les options permettant d'effectuer des vérifications sur les données de réponse (à l'aide d'assertions) et de traiter ces données en préparation de l'étape suivante (à l'aide de variables).

Assertions

Définir vos étapes et renseigner ces étapes avec les données correctes est la base d'une bonne configuration. Cependant, il est également important de regarder les résultats de chaque étape. Appeler une flopée d'URLs ne sert à rien si elles ne retournent pas les bons résultats. Les assertions vous aident à établir un bilan de santé.

Les assertions sont des vérifications que vous pouvez exécuter pour vérifier que la réponse à une étape particulière s'est comportée comme prévu, par exemple, en vérifiant son contenu ou en vérifiant qu'elle a été récupérée dans un certain laps de temps. Comme pour les variables, vous spécifiez la source pour la vérification, par exemple, une propriété JSON du corps de réponse JSON, une requête XPath du corps de réponse XML, ou même simplement le code d'état de la réponse, sa durée ou la longueur du contenu.

D'autres d'exemples d'Assertions : lisez notre Guide complet pour définir les assertions.

Variables

Lorsque vous configurez des scénarios multi-étapes, il est probable qu'au moins une de ces étapes va dépendre de certaines données récupérées lors d'une étape précédente. En capturant cette donnée, en la stockant temporairement et en la passant aux étapes suivantes, vous créez une progression naturelle d'étapes connectées, sans avoir besoin d'écrire de code.

C'est exactement à quoi servent les variables ! Chaque étape peut créer de nouvelles variables et accéder aux variables créées par d'autres étapes, permettant ainsi de réutiliser les données précédemment capturées dans le scénario.

Vous pouvez définir à partir d'où une variable devrait provenir : probablement une valeur particulière de données JSON ou XML, mais la capture d'en-têtes de réponse ou même de données à partir d'une redirection est également possible. Une fois qu'une variable a été définie, vous pouvez l'utiliser n'importe où dans votre configuration multi-étapes simplement en utilisant son nom:   {{my-variable}}.

D'autres exemples de variables: Comment définir et utiliser les variables.

Résultats, erreurs et alertes du Monitoring multi-étapes

Les moniteurs API multi-étapes se comportent de la même manière que tout autre moniteur. Chaque vérification apparaît dans le journal du moniteur et affiche des informations détaillées pour chaque étape individuelle. Pour chaque étape, cette information comprend :

  • la durée totale de l'étape (en millisecondes),
  • la URL qui a été interrogée au cours de cette étape,
  • le code d'état HTTP qui a été retourné,
  • le résultat pour chaque assertion (réussite ou échec),
  • les en-têtes et contenu de la requête qui ont été envoyés,
  • les en-têtes et contenu de la réponse qui ont été reçus.

Si un problème se produit au cours de l'une des étapes ou si l'une des assertions que vous avez définies ne réussit pas, le moniteur échouera et signalera une erreur. Comme d'habitude, ces erreurs peuvent générer des alertes en fonction de vos définitions d'alertes.