UriMatcher - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • URI がスキーム、ホスト、パス、フラグメント、およびクエリパラメーターの存在について指定された条件に一致するかどうかを確認するメソッドを提供します。

    UriMatcher API には、デフォルトで有効になっている REST API プロバイダー (com.glide.rest) プラグインが必要です。

    この API は sn_ws 名前空間内で提供されます。

    UriMatcher - UriMatcher()

    新しい UriMatcher オブジェクトをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし

    UriMatcher オブジェクトをインスタンス化します。

    var matcher = new sn_ws.UriMatcher();

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

    URI が、スキーム、ホスト、パス、フラグメント、およびクエリパラメーターの存在について指定された基準に一致するかどうかを確認します。

    表 : 2. パラメーター
    名前 タイプ 説明
    URI 文字列 指定された基準に対してテストする URI です。
    スキーム 文字列 URI で使用されるプロトコル。
    有効な値:
    • http
    • https
    ホスト アレイ URI 内の許可されたホストのリスト。

    URI は、一致と見なされる許可されているホストの 1 つを使用する必要があります。

    パス アレイ オプション。URI 内で許可されるパスのリスト。

    URI は、一致と見なされる許可されるパスの 1 つを使用する必要があり、許可されるパスは URI で使用される完全パスである必要があります。たとえば、許可されたパスが /path1 の場合、パスが /path1/more の URI は一致とは見なされません。

    注:
    パスは / で始まる必要があります。

    デフォルト:任意のパスが許可されます。

    フラグメント アレイ オプション。URI 内で許容されるフラグメントのリスト。

    URI は、許可されたフラグメントが含まれていない場合でも一致と見なされます。URI は、許可リストにないフラグメントが含まれている場合にのみ、一致しないと見なされます。

    デフォルト:任意のフラグメントが許可されます。

    disallowQueryParameters ブール オプション。URI でクエリパラメーターが許可されているかどうかを示すフラグ。
    有効な値:
    • true:クエリパラメーターは使用できません。クエリパラメーターが URI に含まれている場合は、エラーが発生します。
    • false:クエリパラメーターが許可されます。

    デフォルト値:false

    表 : 3. 返される内容
    タイプ 説明
    UriMatcherResponse 一致に関する詳細情報を返すためのメソッドを持つ UriMatcherResponse オブジェクト。

    この例では、URI が指定されたスキームとホストと一致するかどうかを確認します。

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

    出力:

    Is URI a match: true

    この例では、URI が指定されたスキーム、ホスト、パス、フラグメント、およびクエリパラメーターの存在と一致するかどうかを確認します。

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

    出力:

    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: