我即将开始为客户的网站开发REST API,我一直在做一些研究.我在API的黄金标准上遇到了这个有用的问题.
在阅读这篇文章之前,我曾考虑过使用Flickr API作为参考.然而,对上述问题的评论使我三思而后行:
The Flickr API is particularly hilarious, for example. It advertises itself as RESTful and yet is nothing of the sort!
- NathanE
我特别感兴趣的是Flickr API不是RESTful的,以及这些没有RESTful元素的影响.
此API被认为是不可靠的另一个重要原因是因为它没有使用"超文本".超文本只是使用链接(和链接关系)在您的应用程序中移动客户端,而不是要求它们以编程方式"构造"URI.
这不是RESTful:
GET/collection
200 OK
1
这是RESTful:
GET/collection
200 OK
后一种RESTful方法的好处是您的服务器可以在任何地方移动项目资源 - 例如将其移动到/ item/1 - 更改href值,并知道所有客户端将管理更改.前一种方法不具备此功能,因为服务器无法保证所有客户端都会确认更改; 这是所谓的客户端/服务器耦合的一部分,在大型分布式系统中,您的API有许多客户端要将其保持在最低限度 - 这是REST的主要目标.
Roy Fielding将REST的这一部分称为"超文本约束",并撰写了以下博客文章:
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven