github API搜索 - 限制和策略

时间:2012-12-11 12:43:59

标签: github github-api

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

谢谢。

3 个答案:

答案 0 :(得分:3)

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

  

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

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

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

GitHub terms of services的F.1部分:

  

我们对您提供的材料声明没有知识产权   到服务。您上传的个人资料和资料仍属于您。   但是,通过将您的网页设置为公开查看,即表示您同意   允许其他人查看您的内容。通过设置您的存储库   公开查看,您同意允许其他人查看和分享您的内容   库。

答案 1 :(得分:2)

添加@CharlesB给出的答案,unauthenticated requests can also enjoy higher rate limits,因为它们在查询字符串中包含客户端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

答案 2 :(得分:0)

添加到上一个答案后,now (2d July 2013)可以准确了解 rate limit重置时间何时有效。

  

现在,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 timestamp,让您知道新的新费率限制的确切时间。

     

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

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

{
  "rate": {
    "limit": 60,
    "remaining": 42,
    "reset": 1372700873
  }
}