1

我想知道 github 搜索 API 是否对请求数量有限制,而且我想知道是否可以将检索到的数据保存在我自己的数据库中,或者之间有一些策略。

谢谢你。

4

3 回答 3

3

http://developer.github.com/v3/#rate-limiting说如下

对于未经身份验证的请求,我们将请求限制为每小时 60 个。对于使用基本身份验证或 OAuth 的请求,我们将请求限制为每小时 5,000 个。您可以检查任何 API 请求的返回 HTTP 标头以查看您的当前状态:

$ curl -i https://api.github.com/users/whatever

至于保存数据,如果是你的就可以,如果是其他的也可以,但我不是律师:

GitHub 服务条款F.1 节:

我们对您提供给服务的材料不主张任何知识产权。您上传的个人资料和资料仍然属于您。但是,将您的页面设置为公开查看,即表示您同意允许其他人查看您的内容。通过将您的存储库设置为公开查看,您同意允许其他人查看和分叉您的存储库。

于 2012-12-11T12:49:33.063 回答
2

除了@CharlesB 给出的答案之外,未经身份验证的请求也可以享受更高的速率限制,因为它们在查询字符串中包含客户端 ID 和秘密

$ curl -i https://api.github.com/users/whatever?client_id=xxxxxxxxxxxxxx&client_secret=yyyyyyyyyyyyyyyyyyyyy

HTTP/1.1 200 OK
Status: 200 OK
X-RateLimit-Limit: 12500
X-RateLimit-Remaining: 11966
于 2013-02-02T18:19:15.073 回答
0

添加到先前的答案,您 现在(2013 年 7 月 2 日)可以准确地知道速率限制重置时间何时生效。

该信息现在在新的X-RateLimit-Reset响应标头中可用。

$ curl -I https://api.github.com/orgs/octokit

HTTP/1.1 200 OK
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1372700873
...

X-RateLimit-Reset 标头提供Unix UTC 时间戳,让您知道新的速率限制生效的确切时间。

重置时间戳也可作为资源的一部分使用/rate_limit

$ curl https://api.github.com/rate_limit

{
  "rate": {
    "limit": 60,
    "remaining": 42,
    "reset": 1372700873
  }
}
于 2013-07-03T05:33:46.717 回答