RESTful API示例

时间:2015-05-22 15:13:57

标签: rest

我一直在努力了解RESTful API / Web应用程序应该是什么样子,我无法帮助但是想知道Web是否已经在RESTful架构下构建。每个网站基本上都是网页的集合(Web应用程序状态的特定表示),您可以通过单击链接来更改状态。因此,您有代表性国家转移!

我想错了吗?此外,每个SO都回答“什么是REST?”这个问题。我设法找到的无法提供示例并显示非RESTful API和RESTful API之间的区别。

有人可以提供吗?这将有助于清理事情。我不想在答案中使用抽象术语,因为将抽象答案拟合到一个例子而不是试图从抽象答案中找出一个例子会更有帮助。初学者说:)

1 个答案:

答案 0 :(得分:0)

迪帕克,

简而言之,REST采用体系结构风格,可以帮助您的应用程序充分利用Web。 Roy Fielding在论文中创造了这个词,称为Architectural Styles and the Design of Network-based Software Architectures

虽然许多REST服务使用HTTP和JSON,但它们不限于上述协议和格式。要判断某项服务是否为REST,可以使用所谓的Richardson Maturity Model。不属于模型三级的服务有时称为RESTlike。

首先,REST服务是无状态的,即如果您从服务器收到一个巨大的列表,该列表是分页的,例如来自亚马逊的书籍列表,您所在的页面不会存储在在服务器端,客户端有责任通知服务器下一页的号码。 URI也用于识别资源,例如可以使用其唯一的URI检索每本书的描述,并使用GET和POST等HTTP方法来处理资源,例如,前者可用于检索书籍信息,后者可用于添加新书籍信息。书。

风格的关键是一个名为超媒体作为应用程序状态引擎(HATEOAS)的概念。对它的简单解释可能是资源的表示(书籍信息可以是JSON,XML,HTML等)应该使用超链接来使这些表示自我描述,例如,如果可以编辑图书信息,则应添加这样做的链接。

如何将超媒体添加到表示中有各种建议。一种可能的格式是超文本应用程序语言(HAL)。其他包括但不限于JSON APIJSON-LDUBER

就个人而言,我冒昧地在我的博客中详细说明这个话题:

问候,德米特里