34. 使用WebClient调用REST服务

如果你的类路径上存在Spring WebFlux,你也可以选择使用WebClient调用REST服务。与RestTemplate相比,WebClient更有函数式的感觉,而且完全是响应式的。你可以使用WebClient.create()创建你自己的client实例。查看与WebClient有关的章节

Spring Boot为你创建并预先配置了这样一个builder。比如,客户端HTTP编解码器会以与服务器端相同的方式被配置好(查看WebFlux HTTP编解码器的自动配置)。

以下是典型的示例:

@Service
public class MyService {
private final WebClient webClient;
public MyBean(WebClient.Builder webClientBuilder) {
this.webClient = webClientBuilder.baseUrl("http://example.org").build();
}
public Mono<Details> someRestCall(String name) {
return this.webClient.get().url("/{name}/details", name)
.retrieve().bodyToMono(Details.class);
}
}