本节介绍了客户端访问 REST 端点的选项。
RestTemplate
RestTemplate 是一个执行 HTTP 请求的 同步客户端。它是原始的 Spring REST 客户端,在底层的 HTTP 客户端库上暴露了一个简单的、模板式的API。
:::info 从 5.0 开始,RestTemplate 处于维护模式,今后只接受小的修改和错误请求。请考虑使用 WebClient,它提供了一个更现代的 API,并支持同步、异步和 streaming 方案。 :::
详见 REST 端点。
WebClient
WebClient 是一个 非阻塞的、反应式的客户端,用于执行 HTTP 请求。它在 5.0 中被引入,提供了 RestTemplate 的现代替代方案,对同步和异步以及流式场景都有有效支持。
与 RestTemplate 相比,WebClient 支持以下内容:
- 非阻塞式 I/O。
- Reactive Streams back pressure
- 以较少的硬件资源实现高并发性。
- 功能性的、流畅的 API,利用 Java 8 lambdas 的优势。
- 同步和异步的交互。
- 流向服务器或从服务器流下(Streaming up to or streaming down from a server.)
更多细节见 WebClient。