解析RestTemplate

REST的基础知识

REST 与RPC

REST与RPC几乎没有任何关系。

  1. RPC是面向服务的,并关注于行为和动作;
  2. 而REST 是面向资源的,强调描述应用程序的事物和名词。

言简意赅:REST就是将资源的状态以最适合客户端或服务端的形式从服务器端转移到客户端(或者反过来)

在REST中,资源通过URL进行识别和定位。至于RESTful URL的结构并没有严格的规则,但是 
URL应该能够识别资源,而不是简单的发一条命令到服务器上。再次强调,关注的核心是事 
物,而不是行为。

Spring 中如何使用Rest资源

借助 RestTemplate,Spring应用能够方便地使用REST资源 ,Spring的 RestTemplate访问使用了模版方法的设计模式。

模版方法将过程中与特定实现相关的部分委托给接口,而这个接口的不同实现定义了接口的不同行为.

RestTemplate定义了36个与REST资源交互的方法,其中的大多数都对应于HTTP的方法。 
注意:这里面只有11个独立的方法

  • delete() 在特定的URL上对资源执行HTTP DELETE操作

  • exchange() 
    在URL上执行特定的HTTP方法,返回包含对象的ResponseEntity,这个对象是从响应体中 
    映射得到的

  • execute() 在URL上执行特定的HTTP方法,返回一个从响应体映射得到的对象

  • getForEntity() 发送一个HTTP GET请求,返回的ResponseEntity包含了响应体所映射成的对象

  • getForObject() 发送一个HTTP GET请求,返回的请求体将映射为一个对象

  • postForEntity() 
    POST 数据到一个URL,返回包含一个对象的ResponseEntity,这个对象是从响应体中映射得 
    到的

  • postForObject() POST 数据到一个URL,返回根据响应体匹配形成的对象

  • headForHeaders() 发送HTTP HEAD请求,返回包含特定资源URL的HTTP头

  • optionsForAllow() 发送HTTP OPTIONS请求,返回对特定URL的Allow头信息

  • postForLocation() POST 数据到一个URL,返回新创建资源的URL

  • put() PUT 资源到特定的URL

实际上,由于POST 操作的非幂等性,它几乎可以代替其他的CRUD操作.

GET请求

RestTemplate 的get方法有以上几个,可以分为两类: getForEntity() 和 getForObject()

首先看 getForEntity() 的返回值类型 ResponseEntity

<T> ResponseEntity<T> getForEntity()

通常情况下我们并不想要Http请求的全部信息,只需要相应体即可.对于这种情况,RestTemplate提供了 getForObject() 方法用来只获取 响应体信息. 
getForObject 和 getForEntity 用法几乎相同,指示返回值返回的是 响应体,省去了我们 再去 getBody() .

POST请求与GET类似

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值