package com.nisum.urivariables; import java.net.URI; import java.util.HashMap; import java.util.Map; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriBuilder; import com.nisum.domain.Order; import reactor.core.publisher.Mono; public class UriVariablesBuilderTest { public static void main(String[] args) { // http://localhost:8883/order/order-11 Map<String, String> uriVariables = new HashMap<>(); uriVariables.put("orderId", "order-11-uribuilder"); String endPoint = "order/{orderId}"; Mono<Order> mono = WebClient.create("http://localhost:8883").get() .uri(uriBuilder -> buildUri(uriBuilder, endPoint, uriVariables)).retrieve().bodyToMono(Order.class); Order order = mono.block(); System.out.println(order); } public static URI buildUri(UriBuilder uriBuilder, String uri, Map<String, String> uriVariables) { UriBuilder builder = uriBuilder.path(uri); if (uriVariables != null) { return builder.build(uriVariables); } return builder.build(); } }