Spring Boot 参考指南(使用WebClient调用REST服务)

34. 使用WebClient调用REST服务

若是你的classpath上有Spring WebFlux,那么你还能够选择使用WebClient来调用远程REST服务,与RestTemplate相比,这个客户端具备更强的功能性,而且彻底具备响应性。你能够使用builder,WebClient.create()建立本身的客户端实例,请参阅有关WebClient的部分html

Spring Boot为你建立并预先配置这样的构建器,例如,客户端HTTP编解码器的配置方式与服务器编解码器的配置方式相同(请参阅WebFlux HTTP编解码器自动配置)。react

下面的代码展现了一个典型的例子:web

@Service
public class MyService {

    private final WebClient webClient;

    public MyService(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);
    }

}

34.1 WebClient定制

WebClient定制有三种主要方法,这取决于你但愿定制的应用范围有多广。spring

要使任何定制的范围尽量狭窄,请注入自动配置的WebClient.Builder,而后根据须要调用其方法,WebClient.Builder实例是有状态的:构建器上的任何更改都反映在随后使用它建立的全部客户端中,若是想用同一个构建器建立多个客户端,还能够考虑使用WebClient.Builder other = builder.clone();克隆构建器。segmentfault

为全部WebClient.Builder实例进行应用程序级的附加定制,你能够声明WebClientCustomizer bean并在注入点局部的更改WebClient.Builder服务器

最后,你能够回到原来的API并使用WebClient.create(),在这种状况下,不该用自动配置或WebClientCustomizerspring-boot


上一篇:使用RestTemplate调用REST服务

下一篇:验证&发送电子邮件

相关文章
相关标签/搜索