限制对公共API的访问

时间:2012-07-26 04:53:55

标签: web-services api web-applications rate-limiting

我有一个我想提供公共访问权限的API,但我希望能够限制访问。

我一直在想Twitter的模型:

  • Twitter允许开发人员使用api密钥访问数据(我认为)。
  • Twitter还必须访问其网站上的数据,以便您进行推文/搜索。
  • 因此Twitter必须能够阻止开发人员冒充Twitter并基本上使用他们的api密钥。

他们是怎么做到的?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

Twitter不使用他们的REST API为他们的网站供电,他们直接查询他们的数据库。因此,没有API密钥可以窃取。您可以阅读Twitter的API和网站数据库查询(大约2009年)here之间的区别。

basic techniques Twitter用于对其API进行速率限制可能也是您想要考虑的因素:

  

每小时允许[更少]请求进行未经身份验证的呼叫。   未经身份验证的呼叫是根据面向公众的IP来衡量的   发出请求的服务器或设备。

     

允许OAuth调用[更多]   每小时的请求数,并根据使用的oauth_token进行衡量   请求。

实施的机制取决于您的服务器平台(您应该使用该平台更新原始帖子),但您可以在website上了解OAuth(上述第二种技术)。