UriMatcher - Dans le champ d’application

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 2 minutes de lecture
  • Fournit une méthode pour vérifier si un URI correspond aux critères spécifiés pour le schéma, l’hôte, le chemin, les fragments et la présence des paramètres de requête.

    L’API UriMatcher nécessite le module d’extension Fournisseur d’API REST (com.glide.rest), qui est activé par défaut.

    Cette API est fournie dans l’espace de noms sn_ws .

    UriMatcher : UriMatcher()

    Instancie un nouvel objet UriMatcher .

    Tableau 1. Paramètres
    Nom Type Description
    Néant

    Instancie un objet UriMatcher .

    var matcher = new sn_ws.UriMatcher();

    UriMatcher : match(String uri, String scheme, Array hosts, Array paths, Array fragments, Boolean disallowQueryParameters)

    Vérifie si un URI correspond aux critères spécifiés pour le schéma, l’hôte, le chemin, les fragments et la présence des paramètres de requête.

    Tableau 2. Paramètres
    Nom Type Description
    uri Chaîne URI à tester par rapport aux critères spécifiés.
    schéma Chaîne Protocole utilisé dans l’URI.
    Valeurs valides :
    • http
    • https
    hôtes Tableau Liste des hôtes autorisés dans l’URI.

    L’URI doit utiliser l’un des hôtes autorisés pour être considéré comme une correspondance.

    chemins d'accès Tableau Facultatif. Liste des chemins d’accès autorisés dans l’URI.

    L’URI doit utiliser l’un des chemins d’accès autorisés pour être considéré comme une correspondance, et le chemin d’accès autorisé doit être le chemin complet utilisé dans l’URI. Par exemple, si le chemin d’accès autorisé est /path1, un URI avec le chemin d’accès /path1/more n’est pas considéré comme une correspondance.

    Remarque :
    Les chemins d’accès doivent commencer par /.

    Par défaut : Tous les chemins sont autorisés.

    fragments Tableau Facultatif. Liste des fragments autorisés dans l’URI.

    L’URI est considéré comme une correspondance même s’il ne contient aucun des fragments autorisés. L’URI n’est considéré comme non correspondant que s’il contient des fragments qui ne figurent pas sur la liste autorisée.

    Par défaut : Tout fragment est autorisé.

    disallowQueryParameters Booléen Facultatif. Marqueur indiquant si les paramètres de requête sont autorisés dans l’URI.
    Valeurs valides :
    • vrai : les paramètres de requête ne sont pas autorisés. Si des paramètres de requête sont inclus dans l’URI, une erreur se produit.
    • faux : les paramètres de requête sont autorisés.

    Valeur par défaut : false

    Tableau 3. Renvoie
    Type Description
    Réponse UriMatcherResponse Objet UriMatcherResponse avec des méthodes pour renvoyer des informations détaillées sur la correspondance.

    Cet exemple vérifie si l’URI correspond au schéma et à l’hôte spécifiés.

    var uri = "https://example.com/path?q=query";
    var scheme = "https";  
    var allowedHosts = ["example.com"];  
    var matcher = new sn_ws.UriMatcher();  
    var resp = matcher.match(uri, scheme, allowedHosts);  
    
    gs.info("Is URI a match: " + resp.isMatch());

    Sortie :

    Is URI a match: true

    Cet exemple vérifie si l’URI correspond au schéma, à l’hôte, au chemin, aux fragments spécifiés et à la présence des paramètres de requête.

    var uri = "https://example.com/path1/more";
    var scheme = "https";  
    var allowedHosts = ["example.com", "sample.com"];  
    var allowedPaths = ["/path1/more", "/path2/less"];  
    var allowedFragments = ["section1", "section2"];  
    var noQueryParams = true;
    var matcher = new sn_ws.UriMatcher();  
    var resp = matcher.match(uri, scheme, allowedHosts, allowedPaths, allowedFragments, noQueryParams);  
    
    gs.info("Is URI a match: " + resp.isMatch());  
    gs.info("Is scheme a match: " + resp.isSchemeMatches());  
    gs.info("Is host a match: " + resp.isHostMatches());  
    gs.info("Is path a match: " + resp.isPathMatches());  
    gs.info("Is fragment a match: " + resp.isFragmentMatches());
    gs.info("Error occurred: " + resp.isError());  
    gs.info("Error message: " + resp.getErrorMessages());

    Sortie :

    Is URI a match: true
    Is scheme a match: true
    Is host a match: true
    Is path a match: true
    Is fragment a match: true
    Error occurred: false
    Error message: