Twitter REST API与ID放置的一致性

时间:2011-11-30 20:39:04

标签: api twitter

有人可以用REST方式向我解释Twitter的设计决策,这两个调用中的参数位置是什么?似乎:id位置是不一致和任意的(尽管这显然是故意的)。

GET statuses/:id/retweeted_by
Show user objects of up to 100 members who retweeted the status.

GET statuses/retweets/:id
Returns up to 100 of the first retweets of a given tweet.

在他们的API(https://dev.twitter.com/docs/api)中还有其他类似的例子,所以我肯定错过了一些东西。

谢谢!

2 个答案:

答案 0 :(得分:0)

只是在这里猜测

Twitter上有人曾指出Twitter API在几个servlet上运行。我只能假设这是相关的 - 映射/retweets/*比映射每个组合更容易。

更新:我认为API本身的历史也可能是相关的。 Twitter的API在过去几年中并没有真正发生太大变化,如果确实发生了变化,那将是因为会增加新的功能。像GET statuses/show/:id这样的端点,而GET statuses/retweets/:id更新。如果Twitter在某个时候决定改变命名约定,那么它们不能只重命名旧的,因为它会破坏应用程序。

我的另一个理论是GET statuses/retweets/:id实际上并不是指Tweet :id本身,而是基于它的推文。通过返回用户而不是其他状态,GET statuses/:id/retweeted_by与推文本身直接相关。

我也经常对命名一致性感到困惑。我相信他们有理由。

答案 1 :(得分:0)

我最终在Twitter上与朋友核实,他说:

  

“我刚刚与最初编写这两个API的人交谈过   终点,他不记得为什么。要回答你的问题,   但是,这种设计可能没有很好的REST原因。“