Vérifier le contenu de la réponse (facultatif)

Vous pouvez créer une expression rationnelle (REGEX) pour vérifier le contenu de la chaîne de réponse qu'un moniteur du service de surveillance de la disponibilité peut retourner lors de la création d'un moniteur.

Lors de l'étape Créer un moniteur, il existe une case à cocher facultative : Vérifier le contenu de la réponse pour vérifier la réponse qu'un moniteur peut retourner en créant un REGEX.

Informations sur REGEX

  • Le REGEX doit correspondre au contenu de la réponse (corps de la réponse et en-têtes de réponse) à partir de l'URL fournie dans le moniteur.
  • Si la recherche REGEX contient des guillemets simples (') ou doubles ("), vous devez ajouter le préfixe suivant au guillemet :
    .*,

    Le préfixe ci-dessus correspond à tous les caractères d'échappement préfixés aux guillemets qui traitent certains cas où le JSON de la réponse n'est pas formé correctement et il peut ajouter une barre oblique inverse aux guillemets dans le corps de la réponse.

  • En raison du formatage des données, il peut y avoir des espaces dans la réponse que vous essayez de mettre en correspondance. Si tel est le cas, essayez d'ajouter \s* dans le REGEX. Cela traitera zéro espace ou plus dans la réponse.
  • Vous pouvez utiliser https://regex101.com/ pour valider le REGEX dans la réponse (chaîne de test) avant de l'utiliser dans le moniteur. Assurez-vous de sélectionner ECMAScript (JavaScript) dans la saveur.

Échantillons REGEX

  • Échantillon REGEX 1
    /"noOfSuccess":\s*(?!0\b)\d+/
    /.*noOfSuccess.*:\s*(?!0\b)\d+/
    Réponse :
    {
    "mepType": "MEP00",
    "noOfAborted": 0,
    "noOfErrors": 0,
    "noOfMsgsProcessed": 46,
    "noOfMsgsReceived": 46,
    "noOfSuccess": 1,
    "successRate": 100,
    "version": "01.00.0000"
    }
  • Échantillon REGEX 2 :
    /"server":\s*("envoy")/
    Réponse :
    {
       "cache-control":"no-store, no-cache, must-revalidate, proxy-revalidate",
       "content-type":"text/html; charset=utf-8",
       "date":"Fri, 16 Jun 2023 07:08:49 GMT",
       "expires":"Sat, 01 Jan 2000 00:00:00 GMT",
       "pragma": "no-cache",
       "server": "envoy",
       "vary":"Accept-Encoding",
       "via":"1.1 net-idcs-config", 
       "x-content-type-options":"nosniff", 
       "x-download-options":"noopen"}

REGEX pour le type de moniteur REST

Lors de l'utilisation du valideur REGEX pour le type de moniteur REST, l'utilisateur peut valider sa chaîne/REGEX avec la réponse en ligne. Le résultat sera retourné en tant que correspondance ou non.

Voici la liste des opérateurs communs pris en charge par le service de surveillance de la disponibilité APM :

Opérateur Description Exemple
Mettre en correspondance un caractère quelconque - Opérateur (.) Le caractère point représente cet opérateur. a.b correspond à une chaîne de trois caractères commençant par a et se terminant par b.
Mettre en correspondance zéro ou plus (*) Cet opérateur répétition de la plus petite expression rationnelle précédant l'expression rationnelle autant de fois que nécessaire (y compris zéro) pour correspondre au modèle. a* correspond à une chaîne composée de zéro, un ou plusieurs a. Dans un autre exemple, fo*, l'élément répétitif est o et non fo. Par conséquent, fo* correspond à f, fo, foo, etc.
Mettre en correspondance un ou plusieurs opérateurs (+) Cet opérateur est similaire à l'opérateur Match-zero-or-more, sauf qu'il répète au moins une fois l'expression rationnelle précédente. ca+r correspond à car et caaaar, mais pas à cr.
Mettre en correspondance zéro ou un opérateur (?) Cet opérateur est similaire à l'opérateur match-zero-or-more, sauf qu'il répète l'expression rationnelle précédente une ou plusieurs fois. ca?r correspond à la fois à car et à cr, mais rien d'autre.
Inverser (^) Exclut une expression. ^a correspond à tout caractère à l'exception de a
Opérateurs de regroupement ((...)) REGEX traite les expressions entre parenthèses comme en mathématiques et en programmation. Les expressions sont traitées avant l'expression située à l'extérieur des parenthèses. f(a|b)a correspond à faa et fba, car que l'opération a|b est traitée avant le reste.
Opérateur de remplacement (|) Les alternatives correspondent à l'un des choix d'expressions rationnelles : si vous placez un ou plusieurs caractères représentant l'opérateur d'alternative entre deux expressions rationnelles a et b, le résultat correspond à l'union des chaînes correspondant à a et b.

foo|bar|quux correspond à foo, bar ou quux.

Autre exemple, ( et ) étant les opérateurs d'ouverture et de fermeture de groupe, fo(o|b)ar correspond à fooar ou fobar. D'autre part, foo|bar correspond à foo ou bar.

Opérateurs de liste ([ ... ] et [^ ... ])

Une liste de correspondance correspond à un des éléments de la liste. Un élément est un caractère, une expression de classe de caractères ou une expression d'intervalle.

Les listes de non-correspondance sont similaires aux listes de correspondance, sauf qu'elles correspondent à un seul caractère non représenté par l'un des éléments de la liste.

[ab] correspond à a ou b. [ad]* correspond à la chaîne vide et toute chaîne composée uniquement des a et d dans n'importe quel ordre.

Exemple : [^ab] correspond à tout caractère sauf a ou b.

Opérateur d'intervalle (-) Représente les caractères compris entre les deux éléments de la séquence de regroupement. [a-f] représente tous les caractères de a à f inclus.
Chiffre (\d) Correspond à tous les chiffres (0-9). Similaire à [0-9].
Sans chiffre (\D) Correspond à tout caractère qui n'est pas un chiffre (0-9). Similaire à [^0-9].
Évasion (\) Indique que le caractère suivant dans l'expression est le caractère lui-même et non un opérateur. \. signifie un point, et non l'opérateur de correspondance avec un caractère quelconque.
Par exemple, si vous voulez autoriser uniquement l'accès des utilisateurs authentifiés pour une page de l'application commençant par my et se trouvant sous le chemin /mybank, vous pouvez utiliser l'expression rationnelle :
\/mybank/my.*

Le point (.) et l'étoile (*) représentent ensemble une séquence de zéro ou plusieurs caractères consécutifs après le préfixe my.

Dans cet exemple, les URL suivantes : /mybank/myCredits et /mybank/myDebits correspondent au REGEX ci-dessus : \/mybank/my.*, mais pas l'URL : /mybank/about.