S
S
Spring 实战(第五版)
搜索文档…
S
S
Spring 实战(第五版)
Spring 实战(第 5 版)
第一部分 Spring 基础
第 1 章 Spring 入门
第 2 章 开发 Web 应用程序
第 3 章 处理数据
第 4 章 Spring 安全
第 5 章 使用配置属性
第二部分 集成 Spring
第 6 章 创建 REST 服务
第 7 章 调用 REST 服务
7.1 使用 RestTemplate 调用 REST 端点
7.1.1 请求 GET 资源
7.1.2 请求 PUT 资源
7.1.3 请求 DELETE 资源
7.1.4 请求 POST 资源
7.2 使用 Traverson 引导 REST API
7.3 小结
第 8 章 发送异步消息
第 9 章 集成 Spring
第三部分 响应式 Spring
第 10 章 Reactor 介绍
第 11 章 开发响应式 API
第 12 章 响应式持久化数据
第四部分 云原生 Spring
第 13 章 服务发现
第 14 章 配置管理
第 15 章 处理失败和时延
第五部分 部署Spring
第 16 章 使用 SpringBoot Actuator
第 17 章 管理 Spring
第 18 章 使用 JMX 监控 Spring
第 19 章 部署 Spring
由
GitBook
提供支持
7.1 使用 RestTemplate 调用 REST 端点
从客户的角度来看,与 REST 资源进行交互需要做很多工作 —— 主要是单调乏味的样板文件。使用低级 HTTP 库,客户端需要创建一个客户端实例和一个请求对象,执行请求,解释响应,将响应映射到域对象,并处理过程中可能抛出的任何异常。不管发送什么 HTTP 请求,所有这些样板文件都会重复。
为了避免这样的样板代码,Spring 提供了 RestTemplate。正如 JDBCTemplate 处理使用 JDBC 糟糕的那部分一样,RestTemplate 使你不必为调用 REST 资源而做单调的工作。
RestTemplate 提供了 41 个与 REST 资源交互的方法。与其检查它提供的所有方法,不如只考虑 12 个惟一的操作,每个操作都有重载,以形成 41 个方法的完整集合。表 7.1 描述了 12 种操作。
表 7.1 RestTemplate 定义的 12 个唯一操作
方法
描述
delete(...)
对指定 URL 上的资源执行 HTTP DELETE请求
exchange(...)
对 URL 执行指定的 HTTP 方法,返回一个 ResponseEntity,其中包含从响应体映射的对象
execute(...)
对 URL 执行指定的 HTTP 方法,返回一个映射到响应体的对象
getForEntity(...)
发送 HTTP GET 请求,返回一个 ResponseEntity,其中包含从响应体映射的对象
getForObject(...)
发送 HTTP GET 请求,返回一个映射到响应体的对象
headForHeaders(...)
发送 HTTP HEAD 请求,返回指定资源 URL 的 HTTP 请求头
optionsForAllow(...)
发送 HTTP OPTIONS 请求,返回指定 URL 的 Allow 头信息
patchForObject(...)
发送 HTTP PATCH 请求,返回从响应主体映射的结果对象
postForEntity(...)
将数据 POST 到一个 URL,返回一个 ResponseEntity,其中包含从响应体映射而来的对象
postForLocation(...)
将数据 POST 到一个 URL,返回新创建资源的 URL
postForObject(...)
将数据 POST 到一个 URL,返回从响应主体映射的对象
put(...)
将资源数据 PUT 到指定的URL
除了 TRACE 之外,RestTemplate 对于每个标准 HTTP 方式至少有一个方法。此外,execute() 和 exchange() 为使用任何 HTTP 方式发送请求提供了低层的通用方法。表 7.1 中的大多数方法都被重载为三种方法形式:
一种是接受一个 String 作为 URL 规范,在一个变量参数列表中指定 URL 参数。
一种是接受一个 String 作为 URL 规范,其中的 URL 参数在 Map<String, String> 中指定。
一种是接受 java.net.URI 作为 URL 规范,不支持参数化 URL。
一旦了解了 RestTemplate 提供的 12 个操作以及每种变体的工作方式,就可以很好地编写调用资源的 REST 客户端了。
要使用 RestTemplate,需要创建一个实例:
1
RestTemplate
rest
=
new
RestTemplate
();
Copied!
或是将它声明为一个 bean,在需要它的时候将其注入:
1
@Bean
2
public
RestTemplate
restTemplate
()
{
3
return
new
RestTemplate
();
4
}
Copied!
让我们通过查看支持四种主要 HTTP 方法(GET、PUT、DELETE 和 POST)的操作来探寻 RestTemplate 的操作。我们将从 getForObject() 和 getForEntity() —— GET 方法开始。
以前
第 7 章 调用 REST 服务
下一个
7.1.1 请求 GET 资源
最近更新
2yr ago
复制链接