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

インターフェース UriInfo


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

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

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

    • 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 - リクエストの範囲外で呼び出された場合
      関連事項:
    • getPathSegments

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

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

      StringSE getMatchedResourceTemplate()

      現在のリクエストの URI に一致するすべての Paths (ApplicationPath を含む) を含む URI テンプレートを取得します。

      リソースクラス、サブリソースメソッド、またはサブリソースロケーターを一致させるために使用される各 Path 値は、1 つの String 値に連結されます。テンプレートにはクエリパラメーターは含まれませんが、リクエスト URI に存在する場合はマトリックスパラメーターが含まれます。連結はリクエスト URI の一致順序で行われ、ApplicationPath 値が最初で現在のリソース URI が最後になります。たとえば、次のリソースクラスがあるとします。

       @Path("foo")
       public class FooResource {
        @GET
        @Path("{foo:[f-z][a-z]*}")
        public String getFoo() {...}
      
        @Path("{bar:[b-e][a-z]*}")
        public BarResource getBarResource() {...}
       }
      
       public class BarResource {
        @GET
        @Path("{id}{id:[0-9]}")
        public String getBar() {...}
       }
       

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

      リクエストからの一致した URI
      リクエスト から呼び出された
      /foo を入手 FooResource.getFoo/foo/{foo:[f-z][a-z]*}
      /foo/bar を入手 FooResource.getBarResource/foo/{bar:[b-e][a-z]*}
      /foo/bar/id0 を入手 BarResource.getBar/foo/{bar:[b-e][a-z]*}/{id}{id:[0-9]}
      メソッドがリクエストのマッチング前に呼び出された場合(事前マッチングフィルターなど)、メソッドは空の文字列を返します。
      戻り値:
      Path テンプレートの連結された文字列。
    • 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