正如每个人都可能注意到的那样,在野外有很多伪造的/基本的REST-API(它们实现了HTTP-API并称为REST,而没有遵循应用程序状态的超文本作为引擎的要求,这导致了向最先指定REST范例的人Roy T.
我一直找不到真正的超文本驱动的REST实现以及状态转换相关的特定于应用程序的媒体类型定义的任何实际示例。
是否有此类实施的可公开访问的示例?
正如每个人都可能注意到的那样,在野外有很多伪造的/基本的REST-API(它们实现了HTTP-API并称为REST,而没有遵循应用程序状态的超文本作为引擎的要求,这导致了向最先指定REST范例的人Roy T.
我一直找不到真正的超文本驱动的REST实现以及状态转换相关的特定于应用程序的媒体类型定义的任何实际示例。
是否有此类实施的可公开访问的示例?
Answers:
它不是从运行代码的角度来看的实现,但是我真的很喜欢InfoQ上的文章“ 如何喝杯咖啡 ”。它描述了以RESTful协议在星巴克订购咖啡的过程。这超出了典型的“一切都是资源” REST入门文章,并且重点介绍了HATEOAS。强烈推荐。
如何对Sun云API?从介绍:
该API的前提是URI空间中没有特定的结构。起点是由云服务提供商提供的URI,用于标识云本身。云的表示包含针对云中其他资源以及可能对其执行的操作(例如,部署和启动虚拟机)的URI。
该背景故事或许也有帮助。
Roy的第4点实际上不是解决Sun Cloud API的RESTfulness问题:
REST API不得定义固定的资源名称或层次结构(客户端和服务器的明显结合)。服务器必须具有控制自己的名称空间的自由。而是允许服务器通过在媒体类型和链接关系中定义那些指令来指导客户端如何构造适当的URI(例如以HTML表单和URI模板完成)。[此处失败表示客户端由于带外信息(例如,特定于域的标准)而采用了一种资源结构,该特定于域的标准在数据方面等同于RPC的功能耦合]。
例子1:在已定义的层级中固定资源名称:
从Sun Cloud API中:“ ... VDC的表示将包括驻留在其中的群集的表示,而这些表示又包括每个群集内的VM的表示。”
示例2带外信息,例如特定于域的标准:
您必须具有Wiki页面内容(带外信息)才能知道Cloud资源字段“ uri”的“资源通信机制”是GET。
我意识到这是前一段时间提出的,但是我举了一个简单的例子来演示“适当的” REST API流程。我尝试遵循Roy的REST规则-也许有帮助: 使用REST的API示例