UriMatcher - com escopo

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • Fornece um método para verificar se um URI corresponde aos critérios especificados para esquema, host, caminho, fragmentos e presença de parâmetros de consulta.

    A API UriMatcher requer o plug-in REST API Provider (com.glide.rest), que é ativado por padrão.

    Esta API é fornecida no namespace sn_ws.

    UriMatcher - UriMatcher()

    Instancia um novo objeto UriMatcher.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum(a)

    Instancia um objeto UriMatcher.

    var matcher = new sn_ws.UriMatcher();

    UriMatcher - match(cadeia de caracteres URI, esquema de cadeia de caracteres, hosts de matriz, caminhos de matriz, fragmentos de matriz, booliano disallowQueryParameters)

    Verifica se um URI corresponde aos critérios especificados para esquema, host, caminho, fragmentos e presença de parâmetros de consulta.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    URI Cadeia de caracteres URI para testar em relação aos critérios especificados.
    esquema Cadeia de caracteres Protocolo usado no URI.
    Valores válidos:
    • http
    • https
    hosts Matriz Lista de hosts permitidos no URI.

    O URI deve usar um dos hosts permitidos para ser considerado uma correspondência.

    caminhos Matriz Opcional. Lista de caminhos permitidos no URI.

    O URI deve usar um dos caminhos permitidos para ser considerado uma correspondência, e o caminho permitido deve ser o caminho completo usado no URI. Por exemplo, se o caminho permitido for /path1, um URI com o caminho /path1/more não será considerado uma correspondência.

    Nota:
    Os caminhos devem começar com /.

    Padrão: qualquer caminho é permitido.

    fragmentos Matriz Opcional. Lista de fragmentos permitidos no URI.

    O URI é considerado uma correspondência, mesmo que não contenha nenhum dos fragmentos permitidos. O URI só será considerado não correspondente se contiver fragmentos que não estejam na lista de permitidos.

    Padrão: qualquer fragmento é permitido.

    disallowQueryParameters Booliano Opcional. Sinalizador que indica se os parâmetros de consulta são permitidos no URI.
    Valores válidos:
    • verdadeiro: parâmetros de consulta não são permitidos. Se os parâmetros de consulta estiverem incluídos no URI, ocorrerá um erro.
    • falso: parâmetros de consulta são permitidos.

    Padrão: falso

    Tabela 3. Retornos
    Tipo Descrição
    UriMatcherResponse ObjetoUriMatcherResponse com métodos para retornar informações detalhadas sobre a correspondência.

    Este exemplo verifica se o URI corresponde ao esquema e ao host especificados.

    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());

    Saída:

    Is URI a match: true

    Este exemplo verifica se o URI corresponde ao esquema, host, caminho, fragmentos e presença de parâmetros de consulta especificados.

    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());

    Saída:

    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: