是什么让Flickr API不RESTful?

时间:2010-02-05 09:32:08

标签: api rest flickr

我即将开始为客户的网站开发REST API,我一直在做一些研究。我在API的黄金标准上遇到了this useful question

在阅读这篇文章之前,我曾想过使用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元素没有影响的因素。

2 个答案:

答案 0 :(得分:6)

此API被认为是不可靠的另一个重要原因是因为它没有使用“超文本”。超文本只是使用链接(和链接关系)在您的应用程序中移动客户端,而不是要求它们以编程方式“构造”URI。

这不是RESTful:

GET / collection
200 OK

<collection>
  <item>
    <id>1</id>
  </item>
</collection>

这是RESTful:

GET / collection
200 OK

<collection>
  <item href="/collection/1" />
</collection>

后者RESTful方法的好处是您的服务器可以将项目资源移动到任何地方 - 例如将其移至/ item / 1 - 更改href值,并知道所有客户端将管理更改。前一种方法不具备此功能,因为服务器无法保证所有客户端都会确认更改;这是所谓的客户端/服务器耦合的一部分,在大型分布式系统中,您的API有许多客户端要将其保持在最低限度 - 这是REST的主要目标。

Roy Fielding将REST的这一部分称为“超文本约束”,并撰写了以下关于它的博文:

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

答案 1 :(得分:4)