REST系统和基于REST的系统之间的区别是什么?

从我读到的一些东西来看,所谓的REST服务实际上就是RESTful服务。那么两者之间的区别是什么呢?


当前回答

谢谢你的回答。 阅读Alex Rodriguez的这篇文章,他认为RESTful web服务有4个基本特征:

显式地使用HTTP方法。 是无状态的。 公开类似目录结构的uri。 传输XML、JavaScript对象符号(JSON)或两者。

其他回答

基于REST的服务称为“REST式服务”。

来源:多布斯博士档案

基于REST的服务/架构vs.基于REST的服务/架构

为了区分或比较这两者,您应该了解REST是什么。

REST(具象状态传输)基本上是一种具有以下原则的开发架构风格:

它应该是无状态的 它应该只使用URI访问来自服务器的所有资源 它没有内置加密 它没有会话 它使用一个且只有一个协议——HTTP 为了执行CRUD操作,它应该使用HTTP动词,如get、post、put和delete 它应该只以JSON或XML、atom、OData等形式返回结果(轻量级数据)。

基于REST的服务遵循上面的一些原则,但不是全部

RESTFUL服务意味着它遵循上述所有原则。

它类似于:

面向对象语言支持所有面向对象的概念,例如:c++, c#

基于对象的语言支持一些面向对象的特性,例如:JavaScript, VB


例子:

asp.net MVC 4是基于rest的,而Microsoft WEB API是基于rest的。

MVC只支持上述REST原则中的一部分,而WEB API则支持上述所有REST原则。

MVC只支持REST API中的以下内容

我们可以使用URI访问资源 它支持HTTP谓词从服务器访问资源 它可以以JSON、XML的形式返回结果,也就是HTTPResponse。

然而,同时在MVC中

我们可以使用会话 我们可以让它有状态 我们可以从控制器动作方法返回视频或图像,这基本上违反了REST原则

这就是为什么MVC是基于rest的,而WEB API支持上述所有原则并且是RESTFul的。

“REST”是一种体系结构范式。“RESTful”描述了使用该范例。

具象状态传输(REST)是软件体系结构的一种风格。正如Roy Fielding在一篇论文中描述的那样,REST是一种“架构风格”,基本上利用了现有的Web技术和协议。

RESTful通常用于指实现这种体系结构的web服务。

正如Jason在评论中所说,RESTful只是作为一个形容词,用来描述尊重REST约束的东西。