REST Clients

本节介绍了客户端访问 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