インターフェース UriBuilder
- すべての既知の実装クラス:
ServletUriComponentsBuilder
,UriComponentsBuilder
事実上 UriComponentsBuilder
の一般化ですが、UriComponents
ではなく URI
SE に直接拡張するショートカットがあり、エンコードの設定、ベース URI などの一般的な関心事を実装の関心事として残しています。
通常、一度構成され、多くの URL を作成するために使用される主要コンポーネントとして機能する UriBuilderFactory
を介して取得されます。
- 導入:
- 5.0
- 作成者:
- Rossen Stoyanchev
- 関連事項:
方法の概要
修飾子と型メソッド説明URI
SE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。URI
SE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。URI フラグメントを設定します。URI テンプレート変数を含む URI ホストを設定します。このビルダーのホストをクリアするには、null
にすることもできます。このビルダーのパスに追加します。pathSegment
(StringSE... pathSegments) パスセグメントを使用してパスに追加します。port
(int port) URI ポートを設定します。URI ポートを設定します。指定されたクエリ文字列をクエリパラメーターに解析します。パラメーターは'&'
で区切られ、その値がある場合は'='
で区切られます。queryParam
(StringSE name, ObjectSE... values) 指定されたクエリパラメーターを追加します。queryParam
(StringSE name, CollectionSE<?> values) コレクションを持つqueryParam(String, Object...)
のバリアント。queryParamIfPresent
(StringSE name, OptionalSE<?> value) 指定されたOptional
SE に値がある場合は、queryParam(String, Object...)
またはqueryParam(String, Collection)
のいずれかにデリゲートします。値が空の場合は、クエリパラメーターはまったく追加されません。queryParams
(MultiValueMap<StringSE, StringSE> params) 複数のクエリパラメーターと値を追加します。replacePath
(StringSE path) 現在のパスを上書きします。replaceQuery
(StringSE query) 既存のクエリパラメーターをクリアしてから、query(String)
に委譲します。replaceQueryParam
(StringSE name, ObjectSE... values) 既存の値を置き換えるクエリパラメーター値を設定します。値が指定されていない場合、クエリパラメーターは削除されます。replaceQueryParam
(StringSE name, CollectionSE<?> values) コレクションを持つreplaceQueryParam(String, Object...)
のバリアント。replaceQueryParams
(MultiValueMap<StringSE, StringSE> params) 既存の値をすべて削除した後、クエリパラメーター値を設定します。URI テンプレート変数を含む URI スキームを設定します。このビルダーのスキームをクリアするには、null
にすることもできます。すべての URI コンポーネント値を完全な形式の URI 文字列に連結して、URI の文字列表現を返します。URI テンプレート変数を含む URI ユーザー情報を設定します。このビルダーのユーザー情報をクリアするには、null
にすることもできます。
メソッドの詳細
scheme
URI テンプレート変数を含む URI スキームを設定します。このビルダーのスキームをクリアするには、null
にすることもできます。- パラメーター:
scheme
- URI スキーム
userInfo
URI テンプレート変数を含む URI ユーザー情報を設定します。このビルダーのユーザー情報をクリアするには、null
にすることもできます。- パラメーター:
userInfo
- URI ユーザー情報
host
URI テンプレート変数を含む URI ホストを設定します。このビルダーのホストをクリアするには、null
にすることもできます。- パラメーター:
host
- URI ホスト
port
URI ポートを設定します。-1
を渡すと、このビルダーのポートがクリアされます。- パラメーター:
port
- URI ポート
port
URI ポートを設定します。このメソッドは、ポートを URI 変数でパラメーター化する必要がある場合にのみ使用してください。それ以外の場合は、port(int)
を使用します。null
を渡すと、このビルダーのポートがクリアされます。- パラメーター:
port
- URI ポート
path
このビルダーのパスに追加します。指定された値は、追加のスラッシュを挿入せずに、以前の
path
値にそのまま追加されます。例:builder.path("/first-").path("value/").path("/{id}").build("123") // Results is "/first-value/123"
対照的に、
pathSegment
は個々のパスセグメントの間にスラッシュを挿入します。例:builder.pathSegment("first-value", "second-value").path("/") // Results is "/first-value/second-value/"
結果のフルパスは、重複するスラッシュを排除するために正規化されます。
注意 : スラッシュを含む URI 変数値を
path
に挿入する場合、それらがエンコードされるかどうかは、構成されたエンコードモードによって異なります。詳細については、UriComponentsBuilder.encode()
を参照してください。そうでない場合は、WebClient
またはRestTemplate
を介して間接的に URI を構築する場合は、そのencodingMode
を参照してください。リファレンスドキュメントの URI エンコーディングセクションも参照してください。- パラメーター:
path
- URI パス
replacePath
現在のパスを上書きします。- パラメーター:
path
- URI パス、または空のパスの場合はnull
pathSegment
パスセグメントを使用してパスに追加します。例:builder.pathSegment("first-value", "second-value", "{id}").build("123") // Results is "/first-value/second-value/123"
スラッシュがパスセグメントに存在する場合、エンコードされます。
builder.pathSegment("ba/z", "{id}").build("a/b") // Results is "/ba%2Fz/a%2Fb"
末尾にスラッシュを挿入するには、path(java.lang.String)
ビルダーメソッドを使用します。builder.pathSegment("first-value", "second-value").path("/") // Results is "/first-value/second-value/"
空のパスセグメントは無視されるため、結果のフルパスに重複するスラッシュは表示されません。
- パラメーター:
pathSegments
- URI パスセグメント- 例外:
IllegalArgumentExceptionSE
query
指定されたクエリ文字列をクエリパラメーターに解析します。パラメーターは'&'
で区切られ、その値がある場合は'='
で区切られます。クエリには、URI テンプレート変数が含まれる場合があります。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
query
- クエリ文字列
replaceQuery
既存のクエリパラメーターをクリアしてから、query(String)
に委譲します。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
query
- クエリ文字列。null
値は、すべてのクエリパラメーターを削除します。
queryParam
指定されたクエリパラメーターを追加します。パラメーター名と値の両方に、後で値から展開される URI テンプレート変数を含めることができます。値が指定されていない場合、結果の URI にはクエリパラメーター名のみが含まれます (例:"?foo=bar"
ではなく"?foo"
)。注意 : エンコードが適用される場合、
"="
や"&"
などのクエリパラメーター名または値で無効な文字のみがエンコードされます。RFC 3986 の構文規則に従って正当な他のすべてはエンコードされません。これには、エンコードされたスペースとしての解釈を避けるためにエンコードされる必要がある場合がある"+"
が含まれます。URI テンプレート変数と変数値のより厳密なエンコーディングを使用して、より厳密なエンコーディングを適用できます。詳細については、Spring Framework リファレンスの「URI エンコーディング」セクションを参照してください。- パラメーター:
name
- クエリパラメーター名values
- クエリパラメーター値- 関連事項:
queryParam
コレクションを持つqueryParam(String, Object...)
のバリアント。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
name
- クエリパラメーター名values
- クエリパラメーター値- 導入:
- 5.2
- 関連事項:
queryParamIfPresent
指定されたOptional
SE に値がある場合は、queryParam(String, Object...)
またはqueryParam(String, Collection)
のいずれかにデリゲートします。値が空の場合は、クエリパラメーターはまったく追加されません。- パラメーター:
name
- クエリパラメーター名value
- オプション。空であるか、クエリパラメーター値を保持しています。- 導入:
- 5.3
queryParams
複数のクエリパラメーターと値を追加します。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
params
- パラメーター
replaceQueryParam
既存の値を置き換えるクエリパラメーター値を設定します。値が指定されていない場合、クエリパラメーターは削除されます。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
name
- クエリパラメーター名values
- クエリパラメーター値- 関連事項:
replaceQueryParam
コレクションを持つreplaceQueryParam(String, Object...)
のバリアント。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
name
- クエリパラメーター名values
- クエリパラメーター値- 導入:
- 5.2
- 関連事項:
replaceQueryParams
既存の値をすべて削除した後、クエリパラメーター値を設定します。注: は、
queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- パラメーター:
params
- クエリパラメーター名
fragment
URI フラグメントを設定します。指定されたフラグメントには URI テンプレート変数が含まれる場合があり、このビルダーのフラグメントをクリアするためにnull
になる場合もあります。- パラメーター:
fragment
- URI フラグメント
build
URI
SE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。- パラメーター:
uriVariables
- URI 変数のマップ- 戻り値:
- URI
build
URI
SE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。- パラメーター:
uriVariables
- URI 変数のマップ- 戻り値:
- URI
toUriString
StringSE toUriString()すべての URI コンポーネント値を完全な形式の URI 文字列に連結して、URI の文字列表現を返します。実装クラスは、現在の URI コンポーネント値の単純な String 連結を実行して、URI テンプレートのプレースホルダーを保持する必要があります。- 導入:
- 6.1.2