UriMatcherResponse - com escopo

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

    Use esta API com a API UriMatcher. Esta API não tem um construtor. Em vez disso, use o método UriMatcher - match() para instanciar um objeto UriMatcherResponse.

    A API UriMatcherResponse requer o plug-in do provedor de REST API (com.glide.rest), que é ativado por padrão.

    Esta API é fornecida no namespace sn_ws.

    UriMatcherResponse – getErrorMessages()

    Retorna mensagens sobre erros ocorridos ao testar o URI em relação aos critérios especificados.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    Cadeia de caracteres Descrição do erro ocorrido. Se não ocorreu nenhum erro, uma cadeia de caracteres vazia será retornada.

    Este exemplo retorna um erro porque um host não foi fornecido nos critérios de correspondência.

    var uri = "https://example.com";
    var scheme = "https";    
    var matcher = new sn_ws.UriMatcher();  
    var resp = matcher.match(uri, scheme);  
    
    gs.info("Error occurred: " + resp.isError());  
    gs.info("Error message: " + resp.getErrorMessages());

    Saída:

    Error occurred: true
    Error message: Hosts rule is null or empty.

    UriMatcherResponse – isError()

    Verifica se ocorreu um erro ao testar o URI em relação aos critérios especificados.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se ocorreu um erro.

    Valores válidos:
    • verdadeiro: ocorreu um erro.
    • falso: não ocorreu nenhum erro.

    Este exemplo retorna um erro porque o URI contém parâmetros de consulta. O erro ocorre porque o argumento passado para match() para disallowQueryParameters é verdadeiro.

    var uri = "https://example.com/path1/more?q=query";
    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("Error occurred: " + resp.isError());  
    gs.info("Error message: " + resp.getErrorMessages());

    Saída:

    Error occurred: true
    Error message: Query parameters are not allowed for matching.

    UriMatcherResponse – isFragmentMatches()

    Verifica se o URI corresponde aos critérios para fragmentos.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o URI corresponde aos critérios para fragmentos.

    Valores válidos:
    • verdadeiro: o URI corresponde aos critérios para fragmentos.
    • falso: o URI não corresponde aos critérios para fragmentos.

    Este exemplo mostra que o URI não corresponde aos critérios porque contém um fragmento que não está na lista de fragmentos permitidos.

    var uri = "https://example.com/path1/more#section3";
    var scheme = "https";  
    var allowedHosts = ["example.com", "sample.com"];  
    var allowedPaths = ["/path1/more", "/path2/less"];  
    var allowedFragments = ["section1", "section2"];  
    var matcher = new sn_ws.UriMatcher();  
    var resp = matcher.match(uri, scheme, allowedHosts, allowedPaths, allowedFragments);  
    
    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());

    Saída:

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

    UriMatcherResponse – isHostMatches()

    Verifica se o URI corresponde aos critérios do host.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o URI corresponde aos critérios do host.

    Valores válidos:
    • verdadeiro: o URI corresponde aos critérios do host.
    • falso: o URI não corresponde aos critérios do host.

    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());
    gs.info("Is host a match: " + resp.isHostMatches());

    Saída:

    Is URI a match: true
    Is host a match: true

    UriMatcherResponse – isMatch()

    Verifica se o URI corresponde a todos os critérios especificados.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o URI corresponde a todos os critérios especificados.

    Valores válidos:
    • verdadeiro: o URI corresponde a todos os critérios.
    • falso: o URI não corresponde a todos os critérios.

    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

    UriMatcherResponse – isPathMatches()

    Verifica se o URI corresponde aos critérios do caminho.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o URI corresponde aos critérios do caminho.

    Valores válidos:
    • verdadeiro: o URI corresponde aos critérios do caminho.
    • falso: o URI não corresponde aos critérios do caminho.

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

    var uri = "https://example.com/path1/more";
    var scheme = "https";  
    var allowedHosts = ["example.com", "sample.com"];  
    var allowedPaths = ["/path1/more", "/path2/less"];  
    var matcher = new sn_ws.UriMatcher();  
    var resp = matcher.match(uri, scheme, allowedHosts, allowedPaths);  
    
    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());

    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

    UriMatcherResponse – isSchemeMatches()

    Verifica se o URI corresponde aos critérios do esquema.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o URI corresponde aos critérios do esquema.

    Valores válidos:
    • verdadeiro: o URI corresponde aos critérios do esquema.
    • falso: o URI não corresponde aos critérios do esquema.

    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());
    gs.info("Is scheme a match: " + resp.isSchemeMatches());

    Saída:

    Is URI a match: true
    Is scheme a match: true