天天看點

飛5的Spring Boot2(35)- 調用REST服務WebClient

調用REST服務 WebClient

如果你的類路徑上有Spring WebFlux,你也可以選擇使用WebClient來調用遠端REST服務。相比之下RestTemplate,這個客戶有更多的功能感,并且完全被動。您可以使用建構器建立您自己的用戶端執行個體, WebClient.create()。請參閱WebClient上的相關部分。

飛5的Spring Boot2(35)- 調用REST服務WebClient

Spring Boot為您建立并預配置這樣的建構器。例如,用戶端HTTP編解碼器的配置方式與伺服器的相同(請參閱 WebFlux HTTP編解碼器自動配置)。

以下代碼顯示了一個典型示例:

1@Service
 2public class MyService {
 3private final WebClient webClient;
 4public MyBean(WebClient.Builder webClientBuilder) {
 5this.webClient = webClientBuilder.baseUrl("http://example.org").build();
 6}
 7public Mono<Details> someRestCall(String name) {
 8return this.webClient.get().url("/{name}/details", name)
 9.retrieve().bodyToMono(Details.class);
10}
11}      

WebClient自定義

WebClient定制有三種主要方法,具體取決于您希望應用的範圍。

為了盡可能縮小任何自定義的範圍,請注入自動配置 WebClient.Builder,然後根據需要調用其方法。WebClient.Builder執行個體是有狀态的:建構器上的任何更改都會反映在随後用它建立的所有用戶端中。如果您想使用相同的建構器建立多個用戶端,則還可以考慮使用克隆建構器WebClient.Builder other = builder.clone();。

繼續閱讀