我想知道 github 搜索 API 是否对请求数量有限制,而且我想知道是否可以将检索到的数据保存在我自己的数据库中,或者之间有一些策略。
谢谢你。
http://developer.github.com/v3/#rate-limiting说如下
对于未经身份验证的请求,我们将请求限制为每小时 60 个。对于使用基本身份验证或 OAuth 的请求,我们将请求限制为每小时 5,000 个。您可以检查任何 API 请求的返回 HTTP 标头以查看您的当前状态:
$ curl -i https://api.github.com/users/whatever
至于保存数据,如果是你的就可以,如果是其他的也可以,但我不是律师:
GitHub 服务条款F.1 节:
我们对您提供给服务的材料不主张任何知识产权。您上传的个人资料和资料仍然属于您。但是,将您的页面设置为公开查看,即表示您同意允许其他人查看您的内容。通过将您的存储库设置为公开查看,您同意允许其他人查看和分叉您的存储库。
除了@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 年 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
}
}