REST表示RE表象小号大老牛逼转让(BOT),并通过创造罗伊菲尔丁在他的博士论文的建筑风格和基于网络的软件架构的设计。他在其中指出了特定的架构原则,例如:
可寻址资源:REST中信息和数据的关键抽象是一种资源,每个资源都必须可通过URI寻址。
统一的受约束的接口:使用少量定义良好的方法来操纵我们的资源。
面向表示形式:一个URI引用的资源可以具有不同的格式,不同的平台需要不同的格式,例如浏览器需要HTML,JavaScript需要JSON和Java应用程序可能需要XML,JSON,CSV,文本等。因此我们与服务进行交互使用该服务的表示形式。
无状态通信:无状态应用程序更易于扩展。
超媒体作为应用程序状态的引擎:让我们的数据格式驱动应用程序中的状态转换。
这些架构原则的集合称为REST。REST的概念受HTTP启发。向我们提供REST的Roy Fielding也是HTTP规范的作者之一。
Web服务和RESTful Web服务是公开给Internet进行程序访问的服务。它们是在线api,我们可以从代码中调用它们。有两种类型的“大型” Web服务SOAP和REST Web服务。
RESTful Web服务:通过应用REST体系结构概念编写的Web服务称为RESTful Web服务,其重点是系统资源以及如何通过HTTP协议将资源状态传输到不同的客户端。
本文档仅关注RESTful Web服务,因此我们将不涉及SOAP WS的细节。
设计诸如RESTful Web服务时没有严格的规则
没有协议标准
没有通讯通道标准
没有服务定义标准
但是SOAP对于所有这些都有严格的规则。所有SOAP Web服务都遵循SOAP规范,该规范规定了每个SOAP Web服务应该是什么。该规范是由委员会开发和管理的,如果SOAP WS甚至没有遵循一条规则,那么从定义上讲它不是SOAP。
RESTful Web服务的概念
在设计/开发RESTful API时,需要考虑的准则很少:
基于资源的位置/ URI
正确使用HTTP方法
HATEOAS(作为应用程序状态引擎的超媒体)
开发RESTful API的主要方法应该是使API“尽可能地RESTful”。