代码之家  ›  专栏  ›  技术社区  ›  AwkwardCoder

休息和休息有什么区别

  •  448
  • AwkwardCoder  · 技术社区  · 15 年前

    休息系统和休息系统有什么区别?

    从一些事情上来说我 read 大多数所谓的REST服务实际上都是RESTful服务。这两者有什么区别呢?

    13 回复  |  直到 5 年前
        1
  •  413
  •   Justin Ethier    15 年前

    Representational state transfer (REST) 是一种风格的软件架构。正如RoyFielding在一篇论文中所描述的,REST是一种“体系结构风格”,它基本上利用了现有的网络技术和协议。

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

        2
  •  106
  •   SingleShot    15 年前

    “休息”是一种架构模式。restful”描述了使用这种模式。

        3
  •  93
  •   Abdelaziz Mahmoud    6 年前

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

    要区分或比较这2个,您应该知道什么是 休息 .

    休息( 重新 表象的 S 泰特 T (transfer)基本上是一种建筑风格的开发,有一些原则…

    • 它应该是无状态的

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

    • 它没有内置加密

    • 它没有会话

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

    • 为了执行CRUD操作,它应该使用http动词,如get、post、put和delete。

    • 它应该只以json或xml、atom、odata等形式返回结果(轻量级数据)

    REST based services 遵循上面的一些原则,而不是全部

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

    它类似于以下概念:

    Object-based languages 支持所有OOPS概念, 实例 C++、C语言

    Object oriented languages 支持一些OOPS功能, 示例 :javascript、vb


    例子 :

    ASP DOT NET MVC 4是 REST-Based 当Microsoft Web API RESTFul .

    MVC只支持上面的一些REST原则,而Web API支持上面的所有REST原则。

    MVC只支持来自RESTAPI的以下内容

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

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

    • 它可以以json、xml(即httpresponse)的形式返回结果。

    然而,同时在MVC中

    • 我们可以利用这次会议

    • 我们可以使它有状态

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

    这就是为什么MVC 基于休息 然而,Web API支持上述所有原则,并且 宁静的 .

        4
  •  37
  •   Darrel Miller    15 年前

    正如杰森在评论中所说,restful只是一个形容词,用来描述尊重其余约束的东西。

        5
  •  27
  •   Arturo Hernandez    11 年前

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

    想法是使用超媒体。或许可以创建新的超媒体类型。我们可以使用javascript/ajax扩展浏览器,并创建新的自定义超媒体类型。我们会有一个真正的REST应用程序。

    这是我对rest的简短理解,问题是它很难实现。我个人认为,当我想参考休息原则时,休息是很重要的,但我知道我并没有真正实现休息的整个概念。我们不是真的说肥皂,因为你要么用肥皂要么不用。我认为大多数人不会像它的创建者罗伊·菲尔丁想象的那样休息,我们实际上实现了RESTful或restlike架构。你可以看到他的 dissertation 你会发现其余的首字母缩略词,而不是restful这个词。

        6
  •  23
  •   Claudio Redi    14 年前

    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/

        7
  •  11
  •   Kumait    11 年前

    谢谢你的回答。 阅读 this article Alex Rodriguez认为,RESTful Web服务具有四个基本特征,即:

    1. 显式使用HTTP方法。
    2. 无国籍。
    3. 像uris一样公开目录结构。
    4. 传输XML、JavaScript对象表示法(JSON)或两者。
        8
  •  10
  •   Andersson Melo    14 年前

    代表性状态转移(REST)是一种分布式超媒体系统(如万维网)的软件体系结构。代表性国家转移一词由罗伊·菲尔丁于2000年提出并定义。 1 [2]在他的博士论文中。Fielding是超文本传输协议(HTTP)规范版本1.0和1.1的主要作者之一。 符合REST约束被称为__restful_。 Source:Wikipedia

        9
  •  7
  •   Jim Ferrans    14 年前

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

    Stefan Tilkov在parleys.com上的休息演讲相当不错, especially this one .

    对于一本书来说,你不能比理查森和鲁比更好。 Restful Web Services .

        10
  •  4
  •   nickolay    9 年前

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

    资料来源:我依赖于发布: Dr.Dobbs Archive

        11
  •  1
  •   Andrew Norman    7 年前

    Richardson成熟度模型中定义了4个级别的API。这些定义如下:

    • 0级:所有API都有一个端点的任何系统(SOAP或RPC属于此类)。0级API也可以类似于“命令”。

    • 级别1:描述的ResourceUri系统。这是一个定义多个基于实体的URI的系统(而不是像0级系统那样有一个端点)。这些URI可以使用不同的HTTP操作(POST、GET、PUT等)来实现针对该资源的不同操作。

    • 级别2:aka级别1,使用标准HTTP方法/动词和多状态代码响应

    • 级别3:aka级别2加上hateoas(响应中包含的超媒体,描述您可以拨打的其他电话)

    虽然1级、2级和3级可被视为休息系统,但只有更严格的级别(即2级和3级)才被视为休息系统。

    因此,本质上所有RESTful API都是REST API,但并非所有REST API都是RESTful API

    definition of the Richardson Maturity Model

        12
  •  0
  •   Pat    5 年前

    把REST想象成一个体系结构的“类”,而RESTful则是这个类众所周知的“实例”。

    请注意“”;我们这里不处理“真实”的编程对象。

        13
  •  -2
  •   Brenden    6 年前

    “休息服务”和“休息服务”是相同的。

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

    值得注意的是,这里的宁静程度各不相同。总的来说,休息是一种风格,而不是标准,所以根据需要有解释的空间。一个例子是分层资源URL(例如 /things/ID/relatedthings )与平面URL(例如 /things/ID /relatedthings?thing=ID )