首页 文章

REST和RESTful有什么区别

提问于
浏览
425

REST系统和RESTful系统之间有什么区别?

从我所说的一些事情来看,所谓的REST服务实际上都是REST服务 . 那两者之间有什么区别呢 .

12 回答

  • 396

    Representational state transfer (REST)是一种软件架构 . 正如Roy Fielding的论文中所描述的,REST是一个"architectural style",它基本上利用了Web的现有技术和协议 .

    RESTful通常用于指代实现此类体系结构的Web服务 .

  • 10

    “REST”是一种架构范式 . “RESTful”描述了使用该范例 .

  • 1

    基于REST的服务/体系结构VC RESTFUL服务/体系结构

    要区分或比较这两个,你应该知道 REST 是什么 .

    REST( RE presentational S tate T ransfer)基本上是一种具有一些原则的开发建筑风格......

    • 它应该是无国籍的

    • 它应该仅使用URI访问服务器的所有资源

    • 它没有内置加密

    • 它没有会话

    • 它使用一个且只有一个HTTP协议

    • 对于执行CRUD操作,它应该使用HTTP动词,例如get,post,put和delete

    • 它应该只以JSON或XML,atom,OData等形式返回结果(轻量级数据)

    REST based services 遵循上述一些原则而非全部原则

    RESTFUL services 意味着它遵循所有上述原则 .

    它类似于以下概念:

    Object-based languages 支持所有OOP概念, examples :C,C#

    Object oriented languages 支持一些OOP功能, examples :JavaScript,VB


    Example

    ASP Dot NET MVC 4是 REST-Based ,而Microsoft WEB API是 RESTFul .

    MVC仅支持上述REST原则中的一些,而WEB API支持上述所有REST原则 .

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

    • 我们可以使用URI访问资源

    • 它支持HTTP动词从服务器访问资源

    • 它可以以JSON,XML的形式返回结果,即HTTPResponse .

    但是,同时在MVC中

    • 我们可以使用会话

    • 我们可以使它成为有状态的

    • 我们可以从控制器动作方法返回视频或图像,这基本上违反了REST原则

    这就是为什么MVC是 REST-Based 而WEB API支持所有上述原则并且 RESTFul .

  • -2

    正如Jason在评论中所说,RESTful仅用作形容词来描述尊重REST约束的东西 .

  • 99

    REST代表代表性的状态转移 . 这意味着国家本身并没有被转移,而仅仅是它的代表 . 最常见的示例是基于纯HTML服务器的应用程序(无javascript) . 浏览器对应用程序本身一无所知,但通过链接和资源,服务器可以将应用程序的状态传输到浏览器 . 如果按钮通常会在常规Windows应用程序中更改状态变量(例如,页面打开),则在浏览器中您会有一个表示此类状态更改的链接 .

    想法是使用超媒体 . 也许是为了创建新的超媒体类型 . 我们可以使用javascript / AJAX扩展浏览器并创建新的自定义超媒体类型 . 我们将有一个真正的REST应用程序 .

    这是我所代表的简短版本,问题在于它很难实现 . 我个人说RESTful,当我想参考REST原则但我知道我并没有真正实现REST的整个概念 . 我们不像它的创建者Roy Fielding所设想的那样做REST,我们实际上实现了RESTful或RESTlike架构 . 你可以看到他的dissertation,你会发现REST的缩写而不是RESTful这个词 .

  • 22

    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/

  • 9

    谢谢你的回答 . 阅读Alex Rodriguez的this article,这表明RESTful Web服务有4个基本特征:

    • 显式使用HTTP方法 .

    • 无国籍 .

    • 公开类似目录结构的URI .

    • 传输XML,JavaScript对象表示法(JSON)或两者 .

  • 6

    Representational State Transfer(REST)是一种用于分布式超媒体系统(如万维网)的软件架构 . “代表性国家转移”一词由Roy Fielding在其博士论文中引入并定义于2000年[2] . Fielding是超文本传输协议(HTTP)规范版本1.0和1.1的主要作者之一 . 符合REST约束称为“RESTful” . Source:Wikipedia

  • 78

    Web服务本质上是其内容由计算机使用的网站程序,而不是人 . REST是一组体系结构原则,规定Web服务应最大限度地利用HTTP和其他Web标准,以便程序获得人们已经可以从Web获得的所有好东西 . REST通常与SOAP Web服务和其他面向“远程过程调用”的Web服务形成对比 .

    Stefan Tilkov在Parleys.com上关于REST的演讲非常好,especially this one .

    对于一本书,你可以't get any better than Richardson and Ruby' s Restful Web Services .

  • 35

    基于REST的服务称为“RESTful服务” .

    来源我依靠张贴:Dr.Dobbs Archive

  • 3

    理查森成熟度模型中定义了4个API级别 . 这些定义为:

    • level 0:任何系统对其所有api都有一个 endpoints (SOAP或RPC属于此类别) . 0级apis也可以类似于“命令” .

    • level 1:ResourceUri描述的系统 . 这是一个定义多个基于实体的URI的系统(而不是像0级系统那样具有单个 endpoints ) . 这些URI可以使用不同的http操作(POST,GET,PUT等)来实现针对该资源的不同操作 .

    • 级别2:也称为级别1,符合标准HTTP方法/动词和多状态代码响应的使用

    • 级别3:又名级别2加上HATEOAS(响应中包含的超媒体描述了您可以进行的其他调用)

    虽然级别1,级别2和级别3可以被视为REST系统,但只有更严格的级别(也称为级别2和级别3)才被视为RESTful .

    基本上所有RESTful apis都是REST api,但并非所有REST apis都是RESTful

    definition of the Richardson Maturity Model

  • 26

    “REST服务”和“RESTful服务”是同一个 .

    RESTful系统是遵循the original document that created the idea of RESTful networked applications中定义的REST约定的任何系统 .

    值得注意的是,RESTful的级别各不相同 . 总的来说,REST是一种风格,而不是标准,因此可以根据需要进行解释 . 一个示例是分层资源网址(例如 /things/ID/relatedthings )与平面网址(例如 /things/ID/relatedthings?thing=ID

相关问题