REST教程三:REST到底有多简单

让我们用一个简单的Web服务作为例子:一个用于查询用户详细信息的电话簿查询应用程序。我们所拥有的资源就是用户的ID。使用Web服务和SOAP,发出的请求应该是这样的:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 <soap:body pb="http://www.acme.com/phonebook">
  <pb:GetUserDetails>
   <pb:UserID>12345</pb:UserID>
  </pb:GetUserDetails>
 </soap:Body>
</soap:Envelope>

(注意:不要关注细节,这只是一个例子)

上面的内容会通过HTTP的POST请求发送到服务器,而服务器返回的结果可能是一个XML文件,不过结果作为有效的数据内容,它会嵌入到一个SOAP请求封装中。

那么采用REST会是什么样呢?REST请求是这样的:

http://www.acme.com/phonebook/UserDetails/12345
注意看,REST请求并不是一个请求体,而只是一个url。此URL使用一个简单的HTTP GET请求发送到服务器,而HTTP回答就是结果的原始数据, 内部不会嵌入其他内容,就是你需要的、可以直接使用的数据。

    从上面的例子
很容易看出,为什么Web服务通常要使用库来创建SOAP / HTTP请求,并将其发送,然后再解析SOAP响应,因为有封装格式在其中;
   
而对于REST,
你所需要的就是一个简单的网络连接,你甚至可以使用您的浏览器直接测试的你的API;
    
尽管如此,REST库(一些简化你操作的东西)还是存在的,我们将在以后讨论其中的一些。

注意URL的“方法”部分,为何不叫“GetUserDetails”,而是简单地“的UserDetails”?这是一个REST设计中常见的约定,使用名词而不是动词来表示简单的资源。

这一节的比喻
对于REST与SOAP的一个很好的比喻是
寄一封信:用SOAP,你需要使用一个信封;而用REST,你只需要一张明信片。明信片是比较容易被接受人处理的,也减少纸张浪费(在REST中意味这消耗更少的带宽),此外就是有一个简短的内容。(当然,REST请求不限制长度,尤其是如果他们使用的是POST,而不是GET)

但是不携带太多的比喻来讲(不同于信件和明信片),REST和SOAP一样的安全。特别是,当REST使用安全套接字(HTTPS协议)时,你可以试用任何你认为合适的机制加密你的内容。如果没有加密机制,REST和SOAP都是不安全的;;而如果采用适当的加密,两者都同样安全。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值