REST 客户端
本节介绍用于访问 REST 端点的客户端选项。
RestClient
RestClient 是一个同步 HTTP 客户端,公开了现代化的流式 (fluent) API。
详情请参阅 RestClient。
WebClient
WebClient 是一个响应式客户端,用于通过流式 API 进行 HTTP 请求。
详情请参阅 WebClient。
RestTemplate
RestTemplate 是用于发起 HTTP 请求的同步客户端。它是 Spring 最初的 REST 客户端,并在底层 HTTP 客户端库之上公开了简单的模板方法 API。
详情请参阅 RestTemplate。
HTTP 服务客户端
Spring Framework 允许你将 HTTP 服务定义为带有 HTTP 交换方法的 Java 接口。然后,你可以生成一个实现该接口并执行交换操作的代理。这有助于简化 HTTP 远程访问,并为选择 API 风格(如同步或响应式)提供了额外的灵活性。
详情请参阅 HTTP 服务客户端。
补充教学
1. 我该选择哪一个?
- 新项目首选:如果你正在编写新的同步应用,
RestClient是推荐的选择。它拥有类似 WebClient 的现代语法,但没有响应式栈的复杂性。 - 响应式项目:如果你使用的是 WebFlux 或需要非阻塞调用,请选择
WebClient。 - 旧代码维护:如果你正在维护使用
RestTemplate的存量代码,可以继续使用,但对于新需求,建议考虑迁移到RestClient。
2. 接口驱动的优势
“HTTP 服务客户端”模式(也称为声明式客户端)类似于 Feign。你只需要定义接口和注解,Spring 就会帮你完成底层的 HTTP 调用细节。这种方式使得代码极其整洁,非常适合微服务之间的一对一调用。