16.4.1 了解 RestTemplate 的操作
RestTemplate 定义了 36 个与 REST 资源交互的方法,其中的大多数都对应于 HTTP 的方法。但是,在本章中我没有足够的篇幅涵盖所有的 36 个方法。其实,这里面只有 11 个独立的方法,其中有十个有三种重载形式,而第十一个则重载了六次,这样一共形成了 36 个方法。表 16.2 描述了 RestTemplate 所提供的 11 个独立方法。除了 TRACE 以外,RestTemplate 涵盖了所有的 HTTP 动作。除此之外,execute() 和 exchange() 提供了较低层次的通用方法来使用任意的 HTTP 方法。
表 16.2 中的大多数操作都以三种方法的形式进行了重载:
一个使用 java.net.URI 作为 URL 格式,不支持参数化 URL;
一个使用 String 作为 URL 格式,并使用 Map 指明 URL 参数;
一个使用 String 作为 URL 格式,并使用可变参数列表指明 URL 参数。
明确了 RestTemplate 所提供的 11 个操作以及各个变种如何工作之后,你就能以自己的方式编写使用 REST 资源的客户端了。我们通过对四个主要 HTTP 方法的支持(也就是 GET、PUT、DELETE 和 POST) 来研究 RestTemplate 的操作。我们从 GET 方法的 getForObject() 和 getForEntity() 开始。
方法 | 描述 |
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 头信息 |
postForEntity() | POST 数据到一个 URL,返回包含一个对象的 ResponseEntity,这个对象是从响应体中映射得到的 |
postForLocation() | POST 数据到一个 URL,返回新创建资源的 URL |
postForObject() | POST 数据到一个 URL,返回根据响应体匹配形成的对象 put() PUT 资源到特定的 URL |
Last updated