UriComponents

UriComponentsBuilder допомагає створювати URI-ідентифікатори з URI-шаблонів зі змінними, як показано в наступному прикладі:

Java
UriComponents uriComponents = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}")  .queryParam("q", "{q}" )  .encode()  .build();  URI uri = uriComponents.expand("Westin", "123").toUri(); 
  1. Статичний фабричний метод з URI- шаблоном.
  2. Додаємо або замінюємо URI-компоненти.
  3. Запит на кодування URI-шаблону та URI-змінних.
  4. Збираємо UriComponents .
  5. Розширюємо змінні та отримуємо URI.
Kotlin
val uriComponents = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}")  .queryParam("q", "{q}")  .encode()  .build()  val uri = uriComponents.expand("Westin", "123").toUri() 
  1. Статичний фабричний метод з URI-шаблоном.
  2. Додаємо або замінюємо URI-компоненти.
  3. Запит на кодування URI-шаблону та URI-змінних.
  4. Збираємо UriComponents.
  5. li>
  6. Розширюємо змінні та отримуємо URI.

Код із попереднього прикладу можна об'єднати в один ланцюжок і скоротити за допомогою buildAndExpand, як показано в наступному прикладі:

Java
URI uri = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .encode() .buildAndExpand("Westin", "123" ) .toUri();
Kotlin
val uri = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .encode() .buildAndExpand( "Westin", "123") .toUri()

Можна скоротити його ще більше шляхом безпосереднього переходу до URI-ідентифікатора (що передбачає кодування), як показано в наступному прикладі:

="spring-block-title">Java
URI uri = UriComponentsBuilder .fromUriString("https://example.com/hotels/{hotel}"
        ) .queryParam("q", "{q}") .build("Westin", "123");