1. Support
  2. Base de connaissances
  3. Surveillance des API
  4. Configuration d'un moniteur API multi-étapes

Configuration d’un moniteur API multi-étapes

Nous changeons notre interface. Certaines informations peuvent ne pas être à jour. En savoir plus.

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, 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 la surveillance API.

Création d’un moniteur API multi-étapes

Pour ajouter un moniteur API multi-étapes :

  1. Sélectionnez + Ajouter un moniteur dans le menu Moniteurs.
  2. Sélectionnez API multi-étapes dans la liste Type.
  3. Donnez à votre moniteur un Nom.
  4. Aller à l’onglet Étapes pour saisir les détails de chaque étape.

Votre nouveau moniteur a déjà une étape (vide). 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 votre 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. Vous pouvez également modifier l’ordre des étapes à l’aide des boutons Déplacer l’étape vers le haut et Déplacer l’étape vers le bas.

Configuration d’une étape de requête

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

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, PATCH, DELETE, HEAD ou OPTIONS. 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. Donnez si vous voulez 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 demande POST, PUT, PATCH, HEAD, OPTIONS ou DELETE, le champ Corps de la requête apparaît. Spécifiez les données que vous souhaitez envoyer dans le cadre de la requête (très probablement des données JSON, des données XML ou des 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 des en-têtes de requête pour spécifier le format des données envoyées ou pour décrire plus en détail le type de réponse attendu. Par exemple, pour ajouter l’en-tête Content-Type mentionné précédemment, procédez comme suit :

  1. Cliquez sur le bouton Ajouter un en-tête de requête pour ajouter une clé et une valeur d’en-tête de requête.
  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 Authorization avec les données appropriées dans le champ Valeur.

L’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.

Utilisation d’un ensemble d’informations d’identification du coffre-fort

Il est possible d’utiliser des références vers des informations d’identification dans le coffre-fort à tout moment dans le corps de la requête, dans les en-têtes de requête ou en tant que valeur pour votre nom d’utilisateur/mot de passe sousAuthentification. Pour faire référence à un élément de coffre-fort, utilisez la syntaxe suivante : {{@VaultItem.<itemGuid>.Password}} ou {{@VaultItem.<itemGuid>.Username}}. Pour trouver le itemGuid, accédez à l’élément du coffre-fort avec vos informations d’identification, puis copiez la dernière partie de l’URL dans la barre d’URL de votre navigateur.

Exemples de références aux éléments du coffre-fort

Réponse

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 série 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 sur le 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 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 ait é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.

Configuration des téléchargements de fichiers

Les moniteurs API multi-étapes acceptent l’importation de fichiers depuis votre coffre-fort dans le cadre de l’une de vos étapes de requête. Le corps de requête de toute étape HTTP que vous configurez dans le moniteur API multi-étapes peut être soit un fichier, soit du texte brut ordinaire. Les fichiers seront envoyés comme du contenu multipart/form-data. La procédure est la suivante :

  1. Téléchargez le fichier en question dans votre coffre-fort. La taille maximale du fichier est 2Mo.
  2. Dans les paramètres de votre moniteur API multi-étapes, ajoutez une étape de requête ou utilisez une étape existante pour exécuter le téléchargement du fichier.
  3. Dans l’onglet Requête de l’étape qui doit exécuter le téléchargement du fichier, définissez la méthode de requête à POST, PUT, ou alors PATCH (en fonction de votre cas) et renseignez l’URL de la requête.
  4. Dans Corps de requête, sélectionnez l’option Envoyer un fichier depuis le coffre-fort.
  5. Cliquez sur le bouton Ajouter un fichier depuis coffre-fort qui apparaît.
  6. Choisissez un fichier dans la liste de fichiers d’importation du coffre-fort, puis cliquez sur le bouton Sélectionner. Sélecteur de fichier pour téléchargement
  7. Il n’est pas nécessaire d’ajouter des en-têtes de requête spécifiques. Nous rajouterons automatiquement un en-tête de requête pour Content-Length et définirons Content-Type: multipart/form-data avec la valeur correcte. Exemples d’en-têtes pour le téléchargement de fichiers

Configuration d’une étape d’attente

Lorsque vous avez une séquence d’étapes de requête dans votre moniteur, chaque étape sera exécutée dès que l’étape précédente a terminée, sans aucun délai. Cependant, cette exécution immédiate peut être un peu trop rapide pour certains scénarios.

Prenez une méthode API qui demande la génération d’un fichier de rapport. L’API lance un processus de backend pour générer le fichier et demande à l’appelant d’envoyer une deuxième requête afin de télécharger le nouveau fichier. La génération du fichier pouvant prendre une seconde ou deux, l’appelant doit attendre quelques secondes avant d’envoyer la deuxième requête. Si la deuxième requête est envoyée trop tôt, elle échouera car le fichier généré n’est pas encore prêt.

Pour ce scénario, il est important d’attendre avant que la deuxième requête ne soit exécutée. Pour ce faire, vous pouvez insérer une étape d’attente distincte. Ce type d’étape vous permet de spécifier le nombre de millisecondes à attendre. Par exemple, pour attendre 3 secondes, spécifiez 3 000 millisecondes comme temps d’attente. Ce temps d’attente sera inclus dans le temps total pour ce moniteur.

Pour ajouter une étape d’attente, cliquez simplement sur le bouton + Ajouter une étape d’attente et indiquez le nombre de millisecondes que vous souhaitez attendre. Si nécessaire, vous pouvez déplacer l’étape d’attente au bon endroit de votre scénario à l’aide des boutons Déplacer l’étape vers le haut/bas.

Le temps d’attente pour une étape d’attente est limité à 60 secondes: une étape d’attente n’est pas destinée à surveiller une tâche de longue durée prenant plusieurs minutes ou heures. Si le moniteur dépasse le temps total maximal d’exécution, la vérification s’arrête et un échec est signalé.

Ajouter une étape d’attente à votre moniteur ne vous coûte rien. Le coût d’un moniteur API multi-étapes est uniquement basé sur le nombre d’étapes de requêtes.

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)
  • l'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 le contenu des requêtes que nous avons envoyés
  • les en-têtes et le contenu de la réponse que nous avons 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.

En utilisant ce site, vous consentez à l’utilisation de cookies conformément à notre Politique de cookies.