REST系统和RESTful系统之间有什么区别?
从我读得最多的几件事中,所谓的REST服务实际上就是RESTful服务。那么两者之间有什么区别。
REST系统和RESTful系统之间有什么区别?
从我读得最多的几件事中,所谓的REST服务实际上就是RESTful服务。那么两者之间有什么区别。
Answers:
代表性状态转移(REST)是一种软件体系结构。正如Roy Fielding在论文中所描述的那样,REST是一种“建筑风格”,它基本上利用了Web的现有技术和协议。
RESTful通常用于指代实现这种架构的Web服务。
architect
什么?网址?像https://translation.googleapis.com/language/translate/v2
这样的REST风格?
为了区分或比较这两个,您应该知道什么是REST。
REST(RE表象的小号泰特Ť转让(BOT))基本上是具有一定的原则发展的建筑风格:
它应该是无状态的
它应该仅使用URI访问服务器上的所有资源
它没有内置的加密
没有会议
它仅使用一种协议-HTTP
对于执行CRUD操作,就应该使用HTTP动词如get
,post
,put
和delete
它只能以JSON或XML,atom,OData等形式(轻量级数据)返回结果。
REST based services
遵循上述某些原则,而非全部
RESTFUL services
表示它遵循以上所有原则。
它类似于以下概念:
Object-based languages
支持所有OOP概念,例如 C ++,C#
Object oriented languages
支持一些OOPs功能,例如:JavaScript,VB
例:
REST-Based
Microsoft Microsoft Web API是ASP Dot NET MVC 4RESTFul
。
MVC仅支持上述某些REST原则,而WEB API支持所有上述的REST原则。
MVC仅支持REST API中的以下内容
我们可以使用URI访问资源
它支持HTTP动词以从服务器访问资源
它可以以JSON,XML的形式(即HTTPResponse)返回结果。
但是,同时在MVC中
我们可以使用会议
我们可以使其状态化
我们可以从控制器操作方法中返回视频或图像,该方法基本上违反了REST原理
这就是为什么MVC是MVC的原因,REST-Based
而WEB API支持上述所有原理并且是RESTFul
。
“ REST”是一种架构范例。“ RESTful”描述了使用该范例。
architect
什么?网址?像https://translation.googleapis.com/language/translate/v2
这样的REST风格?
正如Jason在评论中所说,RESTful仅用作形容词,用于描述尊重REST约束的事物。
REST代表代表性的状态转移。这意味着状态本身不会被转移,而仅仅是状态的代表。最常见的示例是基于纯HTML服务器的应用程序(没有javascript)。浏览器对应用程序本身一无所知,但是通过链接和资源,服务器能够将应用程序的状态传输到浏览器。在正常的Windows应用程序中,按钮通常会更改状态变量(例如,打开页面),而在浏览器中,您具有一个表示这种状态更改的链接。
这个想法是使用超媒体。也许要创建新的超媒体类型。潜在地,我们可以使用javascript / AJAX扩展浏览器并创建新的自定义超媒体类型。我们将拥有一个真正的REST应用程序。
这是我所代表的REST的简短版本,问题在于它难以实现。当我想参考REST原理时,我个人说过RESTful,但我知道我并没有真正实现REST的整个概念。我们并不是真的说SOAPful,因为您是否使用过SOAP。我认为大多数人都不会像创建者Roy Fielding所设想的那样进行REST,我们实际上是在实现RESTful或类似REST的体系结构。您可以看到他的论文,并且会找到REST的首字母缩写,但是没有RESTful这个词。
REST是一种用于分布式软件的软件架构样式
符合REST约束的条件称为“ RESTful”。
今天,它非常常用于构建Web服务,以替代SOAP。
在这里,您需要检查一些链接
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
Web服务本质上是网站,其内容是由计算机程序而非人员消费的。REST是一组体系结构原则,规定Web服务应最大程度地利用HTTP和其他Web标准,以便程序获得人们已经可以从网络中获得的所有好处。REST通常与SOAP Web服务以及其他面向“远程过程调用”的Web服务形成对比。
Stefan Tilkov在Parleys.com上关于REST的演讲相当不错,尤其是这一演讲。
对于一本书来说,没有什么比Richardson和Ruby的Restful Web Services更好。
基于REST的服务称为“ RESTful服务”。
来源我依靠发布来:Dr.Dobbs Archive
理查森成熟度模型中定义了4级API。这些定义为:
级别0:任何系统的所有api都具有单个端点的系统(SOAP或RPC属于此类别)。级别0的api也可能类似于“命令”。
级别1:ResourceUri描述的系统。这是一个定义多个基于实体的URI的系统(而不是像0级系统那样具有单个端点)。这些URI可以使用不同的http操作(POST,GET,PUT等)来针对该资源实施不同的操作。
级别2:又称为级别1,带有标准HTTP方法/动词和多状态代码响应的兼容使用
3级:又名2级加上HATEOAS(响应中包含的超媒体,它描述了您可以拨打的其他电话)
虽然可以将级别1,级别2和级别3视为REST系统,但是只有更严格的级别(即级别2和级别3)才被认为是RESTful。
因此,基本上所有RESTful API都是REST API,但并非所有REST API都是RESTful
“ REST服务”和“ RESTful服务”是相同的。
RESTful系统是遵循原始文档中创建RESTful网络应用程序概念的REST约定的任何系统。
值得注意的是,RESTfulness的级别各不相同。总体而言,REST是一种样式,而不是一种标准,因此存在根据需求进行解释的空间。一个示例是分层资源网址(例如/things/ID/relatedthings
)与固定网址(例如/things/ID
和/relatedthings?thing=ID
)