パッケージ jakarta.ws.rs.core

インターフェース UriInfo


  • public interface UriInfo
    アプリケーションへのアクセスを提供し、URI 情報をリクエストする注入可能なインターフェース。相対 URI は、アプリケーションのベース URI を基準にしています。getBaseUri() を参照してください。

    すべてのメソッドは、リクエストのスコープ外で(プロバイダーコンストラクターなどから)呼び出されると、java.lang.IllegalStateException をスローします。

    導入:
    1.0
    作成者:
    Paul Sandoz, Marc Hadley
    関連事項:
    Context
    • メソッドの詳細

      • getPath

        StringSE getPath()
        現在のリクエストのベース URI からの相対パスを文字列として取得します。エスケープされたオクテットのすべてのシーケンスがデコードされます。これは getPath(true) と同等です。
        戻り値:
        相対 URI パス。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getPath

        StringSE getPath​(boolean decode)
        現在のリクエストのベース URI からの相対パスを文字列として取得します。
        パラメーター:
        decode - エスケープされたオクテットのシーケンスがデコードされるか(true)、デコードされないか(false)を制御します。
        戻り値:
        相対 URI パス
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getPathSegments

        ListSE<PathSegment> getPathSegments()
        PathSegment のリストとして、ベース URI に対する現在のリクエストのパスを取得します。このメソッドは、パスを解析する必要がある場合、特にマトリックスパラメーターがパスに存在する可能性がある場合に役立ちます。パスセグメントのエスケープされたオクテットとマトリックスパラメーター値のすべてのシーケンスがデコードされます。これは getPathSegments(true) と同等です。
        戻り値:
        PathSegment の変更不可能なリスト。各パスセグメントのマトリックスパラメーターマップも変更できません。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合
        関連事項:
        PathSegment, マトリックス URI
      • getPathSegments

        ListSE<PathSegment> getPathSegments​(boolean decode)
        PathSegment のリストとして、ベース URI に対する現在のリクエストのパスを取得します。このメソッドは、パスを解析する必要がある場合、特にマトリックスパラメーターがパスに存在する可能性がある場合に役立ちます。
        パラメーター:
        decode - パスセグメントのエスケープされたオクテットのシーケンスとマトリックスパラメーター値がデコードされるか(true)、デコードされないか(false)を制御します。
        戻り値:
        PathSegment の変更不可能なリスト。各パスセグメントのマトリックスパラメーターマップも変更できません。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合
        関連事項:
        PathSegment, マトリックス URI
      • getRequestUri

        URISE getRequestUri()
        クエリパラメーターを含む絶対リクエスト URI を取得します。
        戻り値:
        絶対リクエスト URI
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合
      • getRequestUriBuilder

        UriBuilder getRequestUriBuilder()
        UriBuilder の形式で絶対リクエスト URI を取得します。
        戻り値:
        絶対リクエスト URI で初期化された UriBuilder。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getAbsolutePath

        URISE getAbsolutePath()
        リクエストの絶対パスを取得します。これには、パスの前にあるすべて(ホスト、ポートなど)が含まれますが、クエリパラメーターは含まれません。これは uriInfo.getBaseUri().resolve(uriInfo.getPath(false)) のショートカットです。
        戻り値:
        リクエストの絶対パス。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getAbsolutePathBuilder

        UriBuilder getAbsolutePathBuilder()
        UriBuilder の形式でリクエストの絶対パスを取得します。これには、パスの前にあるすべて(ホスト、ポートなど)が含まれますが、クエリパラメーターは含まれません。
        戻り値:
        リクエストの絶対パスで初期化された UriBuilder。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getBaseUri

        URISE getBaseUri()
        アプリケーションのベース URI を取得します。ルートリソースクラスの URI はすべて、このベース URI に関連しています。
        戻り値:
        アプリケーションのベース URI。
      • getBaseUriBuilder

        UriBuilder getBaseUriBuilder()
        アプリケーションのベース URI を UriBuilder の形式で取得します。
        戻り値:
        アプリケーションのベース URI で初期化された UriBuilder。
      • getPathParameters

        MultivaluedMap<StringSE,​StringSE> getPathParameters()
        埋め込まれた URI テンプレートパラメーターの値を取得します。エスケープされたオクテットのすべてのシーケンスがデコードされます。これは getPathParameters(true) と同等です。
        戻り値:
        パラメーター名と値の変更不可能なマップ。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
        関連事項:
        Path, PathParam
      • getPathParameters

        MultivaluedMap<StringSE,​StringSE> getPathParameters​(boolean decode)
        埋め込まれた URI テンプレートパラメーターの値を取得します。
        パラメーター:
        decode - エスケープされたオクテットのシーケンスがデコードされるか(true)、デコードされないか(false)を制御します。
        戻り値:
        パラメーター名と値の変更不可能なマップ
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
        関連事項:
        Path, PathParam
      • getQueryParameters

        MultivaluedMap<StringSE,​StringSE> getQueryParameters()
        現在のリクエストの URI クエリパラメーターを取得します。マップキーは、エスケープ文字がデコードされたクエリパラメーターの名前です。パラメーター名と値のエスケープされたオクテットのすべてのシーケンスがデコードされます。これは getQueryParameters(true) と同等です。
        戻り値:
        クエリパラメーターの名前と値の変更不可能なマップ。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getQueryParameters

        MultivaluedMap<StringSE,​StringSE> getQueryParameters​(boolean decode)
        現在のリクエストの URI クエリパラメーターを取得します。マップキーは、エスケープ文字がデコードされたクエリパラメーターの名前です。
        パラメーター:
        decode - パラメーター名と値のエスケープされたオクテットのシーケンスをデコードするか(true)、デコードしないか(false)を制御します。
        戻り値:
        クエリパラメーターの名前と値の変更不可能なマップ。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
      • getMatchedURIs

        ListSE<StringSE> getMatchedURIs()
        一致したリソースの URI の読み取り専用リストを取得します。各エントリは、リソースクラス、サブリソースメソッド、サブリソースロケーターに一致する相対 URI です。エスケープされたオクテットのすべてのシーケンスがデコードされます。これは getMatchedURIs(true) と同等です。エントリにはクエリパラメーターは含まれませんが、リクエスト URI に存在する場合はマトリックスパラメーターが含まれます。エントリは、現在のリソース URI を最初に、逆リクエスト URI の一致順序で並べられます。例: 次のリソースクラスが与えられます。
         @Path("foo")
         public class FooResource {
          @GET
          public String getFoo() {...}
        
          @Path("bar")
          public BarResource getBarResource() {...}
         }
        
         public class BarResource {
          @GET
          public String getBar() {...}
         }
         

        リクエスト uri に基づいてこのメソッドによって返される値と、メソッドの呼び出し元は次のとおりです。

        リクエストからの一致した URI
        リクエスト から呼び出された
        /foo を入手 FooResource.getFoofoo
        /foo/bar を入手 FooResource.getBarResourcefoo/bar、foo
        /foo/bar を入手 BarResource.getBarfoo/bar、foo
        リクエストのマッチングの前にメソッドが呼び出された場合(たとえば、事前マッチングフィルターから)、メソッドは空のリストを返します。
        戻り値:
        一致したリソースの URI パスの読み取り専用リスト。
      • getMatchedURIs

        ListSE<StringSE> getMatchedURIs​(boolean decode)
        一致したリソースの URI の読み取り専用リストを取得します。各エントリは、リソースクラス、サブリソースメソッド、サブリソースロケーターに一致する相対 URI です。エントリにはクエリパラメーターは含まれませんが、リクエスト URI に存在する場合はマトリックスパラメーターが含まれます。エントリは、現在のリソース URI を最初に、逆リクエスト URI の一致順序で並べられます。例については、getMatchedURIs() を参照してください。リクエストのマッチングの前にメソッドが呼び出された場合(たとえば、事前マッチングフィルターから)、メソッドは空のリストを返します。
        パラメーター:
        decode - エスケープされたオクテットのシーケンスがデコードされるか(true)、デコードされないか(false)を制御します。
        戻り値:
        一致したリソースの URI パスの読み取り専用リスト。
      • getMatchedResources

        ListSE<ObjectSE> getMatchedResources()
        現在一致しているリソースクラスインスタンスの読み取り専用リストを取得します。各エントリは、直接、またはサブリソースメソッドまたはサブリソースロケーターを介してリクエスト URI に一致したリソースクラスインスタンスです。エントリは、現在のリソースを最初にして、逆リクエスト URI の一致順序に従って順序付けられます。例: 次のリソースクラスが与えられます。
         @Path("foo")
         public class FooResource {
          @GET
          public String getFoo() {...}
        
          @Path("bar")
          public BarResource getBarResource() {...}
         }
        
         public class BarResource {
          @GET
          public String getBar() {...}
         }
         

        リクエスト uri に基づいてこのメソッドによって返される値と、メソッドの呼び出し元は次のとおりです。

        リクエストからの一致したリソース
        リクエスト から呼び出された
        /foo を入手 FooResource.getFooFooResource
        /foo/bar を入手 FooResource.getBarResourceFooResource
        /foo/bar を入手 BarResource.getBarBarResource, FooResource
        リクエストのマッチングの前にメソッドが呼び出された場合(たとえば、事前マッチングフィルターから)、メソッドは空のリストを返します。
        戻り値:
        一致したリソースクラスインスタンスの読み取り専用リスト。
      • resolve

        URISE resolve​(URISE uri)
        アプリケーションのベース URI に関して相対 URI を解決します。このメソッドによって返される解決された URI は正規化されます。指定された URI がすでに解決されている場合は、それが返されます。
        パラメーター:
        uri - アプリケーションのベース URI に対して解決する URI。
        戻り値:
        新しく解決された URI、またはすでに解決されている場合は提供された URI。
        導入:
        2.0
      • relativize

        URISE relativize​(URISE uri)
        現在のリクエスト URI を基準にして URI を相対化します。相対化は次のように機能します。
        1. 相対化する URI がすでに相対的である場合、最初に resolve(java.net.URI) を使用して解決されます。
        2. 結果の URI は、現在のリクエスト URI に関して相対化されます。2 つの URI がプレフィックスを共有していない場合、手順 1 で計算された URI が返されます。

        例(ベース URI http://example.com:8080/app/root/ の場合):

        リクエスト URIhttp://example.com:8080/app/root/a/b/c/resource.html 
        提供された URIa/b/c/d/file.txt 
        返された URId/file.txt 

        リクエスト URIhttp://example.com:8080/app/root/a/b/c/resource.html 
        提供された URIhttp://example2.com:9090/app2/root2/a/d/file.txt 
        返された URIhttp://example2.com:9090/app2/root2/a/d/file.txt

        2 番目の例では、指定された URI が絶対的であり、それとリクエスト URI の間に共通のプレフィックスがない場合に返されます。

        パラメーター:
        uri - リクエスト URI に対して相対化する URI。
        戻り値:
        新しく相対化された URI。
        例外:
        IllegalStateExceptionSE - リクエストの範囲外で呼び出された場合。
        導入:
        2.0