我有一个我想提供公共访问的 API,但我希望能够限制访问。
我一直在思考 Twitter 的模型:
- Twitter 允许开发人员使用 api 密钥访问数据(我认为)。
- Twitter 还必须从他们的网站访问数据,以允许您发布推文/搜索。
- 所以 Twitter 必须能够阻止开发人员冒充 twitter 并基本上使用他们的 api 密钥。
他们是怎么做到的呢?还有更好的方法吗?
我有一个我想提供公共访问的 API,但我希望能够限制访问。
我一直在思考 Twitter 的模型:
他们是怎么做到的呢?还有更好的方法吗?
Twitter 不使用他们的 REST API 来支持他们的网站,他们直接查询他们的数据库。因此,没有 API 密钥可以窃取。您可以在此处了解 Twitter 的 API 和网站数据库查询(大约 2009 年)之间的区别。
Twitter 用来限制其 API的基本技术也可能是您想要考虑的技术:
每小时允许未经身份验证的呼叫 [更少] 请求。未经身份验证的呼叫是根据发出请求的服务器或设备的面向公众的 IP 来衡量的。
OAuth 调用每小时允许 [更多] 请求,并根据请求中使用的 oauth_token 进行测量。
实现的机制取决于您的服务器平台(您应该使用它更新您的原始帖子),但您可以在他们的网站上了解 OAuth(上面的第二种技术)。