HTTP就是该框架风格的一个典型应用。一方面,随着云计算和移动计算的兴起,很多企业愿意在互联网上共享自己的数据另一方面,在企业中,Restful API已经逐渐超越SOAP成为实现SOA的主要手段之一。
REST即Representaional State Transfer的缩写,可翻译为“(资源)表现层状态转化”。Rest最大的的几个特点为:资源、统一接口、URI和无状态
1、资源
所谓资源,就是一类数据,它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实载。资源总是通过某种载体反应内容,
文本可以用txt格式表现,也可以用html格式、xml格式,甚至可以采用二进制格式;图片可以采用JPG格式表现,也就是用PNG表示,JSON是现在最常见的资源表示格式。
资源是以JSON为载体的,面向用户的一组数据集,资源对信息的表达秦翔宇概念模型中的数据。
2、统一接口
Restful架构风格规定、数据的元操作,即CRUD操作,分别对应HTTP方法:GET用来获取资源、POST用来新建资源、PUT用来更新资源,DELETE用来删除资源。这样就统一了数据操作的接口,仅仅通过HTTP方法,就可以完成对数据的所才CRUD操作。
GET:从服务器取出资源(一项或多项)
POST:在服务器新建一个资源
PUT:在服务器更新资源(客户端提供完整资源数据)
PATCH:在服务器更新资源(客户端提供需要修改的资源数据)
DELETE:从服务器删除资源
3、URI
可以用一个URI指向资源,即每个URI都对应一个特点的资源。要获取这个资源,访问它的URI即可。因此URI就成了每一个资源的地址或标识符。
4、无状态
所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位于其他资源无关,也不会因为其他资源的变化而变化。
二、REST和RPC
RPC风格曾是Web Service的主流,最初是基于XML-RPC协议(一个远程过程调用的分布式计算协议),后来逐渐被SOAP协议(简单对象访问协议)取代,RPC风格的服务,不仅可以用HTTP,还可以用TCP或者其他通信协议。但RPC风格的服务,受开发语言的约束比较大。如在.NET 框架中,开发web Service的传统方式是使用wcf,基于wcf开发的服务即RPC风格的服务,使用该服务的客户端通常要用C#来实现。如果使用其他语言,很难实现通信。进入移动互联网时代后。RPC风格的服务很难再移动端使用,而Restful风格的服务,由于可以直接以JSON或者xml为载体承载数据,以HTTP方法为同意接口完成数据操作,客户端的开发不依赖于服务实现的技术,移动端也可以轻松使用服务,这也加剧了Rest取代RCP成为 web service的主导。