12.4 响应式消费 REST API
在第 8 章,您已经使用过 RestTemplate 通过客户端向 Taco Cloud API 发出请求。RestTemplate 是一个老组件了,引入自 Spring 3.0 版本。至今为止,我们使用它向应用程序发出过无数次请求。
但是 RestTemplate 提供的所有处理方法都不属于响应式的类型和领域。这就意味着如果您想以响应式的方式处理一个响应的数据 ,您必须用 Flux 或 Mono 去包装它。如果您想用 Post 或者 Put 方法发送已有的 Flux 或 Mono 请求,您需要将先数据抽取出来再放入一个非响应式的类。
所以,能够有一种办法使用原生的 RestTemplate 去处理响应式类型就很棒了。不用担心,Spring 提供了 WebClient 作为 RestTemplate 的响应式版本。当 WebClient 向外部 APIs 发出请求的同时,也可以发出或接收响应式类型。
使用 WebClient 和使用 RestTemplate 是完全不一样的体验。RestTemplate 会使用不同的方法处理不同类型的请求,而 WebClient 拥有了一个流畅的构建者风格接口(builderstyle interface),可以让您描述并发送请求。WebClient 的常用使用方法有以下几种:
- 创建一个 WebClient 实例(或者注入一个 WebClient Bean)
- 指定发送请求的 HTTP 方法
- 指定请求中所必要的 URI 和 header
- 提交请求
- 消费响应
接下来让我们看几个 WebClient 实战的例子,开始了解如何使用 WebClient 来发送 HTTP GET 请求。