首页 文章

HATEOAS(REST架构)的实际示例[关闭]

提问于
浏览
134

正如大家可能已经注意到的那样,在野外存在大量虚假/基本的REST-API(实现HTTP-API并将其称为REST而不遵循应用程序状态引擎的超文本要求,这导致到famous rant of Roy T. Fielding,第一个指定REST范式的人 .

我一直无法找到真正的超文本驱动的REST实现的任何实际示例,以及状态转换的相关应用程序特定的媒体类型定义 .

是否有任何可公开访问的此类实现示例?

5 回答

  • 100

    Netflix有一个基于HATEOAS的REST API,它包含作为资源一部分的链接 .

  • 21

    在Roy的第四点中,不是Sun Cloud API的RESTful实际解决了:

    REST API不能定义固定资源名称或层次结构(客户端和服务器的明显耦合) . 服务器必须能够自由控制自己的命名空间 . 相反,允许服务器通过在媒体类型和链接关系中定义这些指令来指示客户端如何构造适当的URI,例如在HTML表单和URI模板中完成的 . [这里的失败意味着客户端由于带外信息而假设资源结构,例如特定于域的标准,这是面向数据的,与RPC的功能耦合相当] .

    Example 1 已定义的heirachy中的固定资源名称:

    来自Sun Cloud API:“... VDC的表示将包括居住在其中的群集的表示,其反过来包括每个群集中的VM的表示 . ”

    Example 2 带外信息,例如特定于域的标准:

    您必须拥有wiki页面内容(带外信息)才能知道 Cloud 资源字段“uri”的“资源通信机制”是GET .

  • 3

    它不是运行代码意义上的实现,但我非常喜欢文章“How to GET a cup of coffee " on InfoQ. It describes the process of ordering a coffee at Starbucks as a RESTful protocol. This goes beyond the typical "一切都是资源”的REST介绍性文章,并侧重于HATEOAS . 强烈推荐 .

  • 6

    我意识到这是前一段时间被问到的,但我为了一个简单的例子,我试图展示一个"proper" REST API流程 . 我试图遵循Roy的REST规则 - 也许它可以帮助:API Example using REST

  • 3

    Sun Cloud API怎么样?从介绍:

    API预先假定URI空间中没有特定的结构 . 起点是由 Cloud 服务提供商提供的URI,用于标识 Cloud 本身 . Cloud 的表示包含 Cloud 中其他资源的URI,以及可以对其执行的操作(例如,部署和启动虚拟机) .

    backstory也可能有所帮助 .

相关问题