因此,我创建了一个查询,使用其GraphQL API(使用REST API测试相同的问题)从Github检索一些数据。查询部分显示如下(显示重要的内容):
query listRepos($queryString: String!, $numberOfRepos: Int!, $afterCursor: String!) {
rateLimit {
cost
remaining
resetAt
}
search(query: $queryString, type: REPOSITORY, first: $numberOfRepos, after: $afterCursor) {
repositoryCount
pageInfo {
endCursor
startCursor
}
<data related to the repository here>
}
}
我做了一小段代码在浏览器上运行来检索数据。代码在执行第50个请求的那一刻起没有问题。此时,response
没有与分页相关的数据;也就是说,没有任何与pageInfo
对象(分页)相关的游标。
注意,在这一点上,我距离甚至接近我能做的请求的极限还有很远。事实上,我在开始时有5000点,而且每个调用的成本都是1.因此,在我停止接收分页游标的那一刻,我仍然有4950分。
此外,此时我收集了近1000个存储库的数据。 repositoryCount
显示的搜索查询结果超过450,000条。因此,这不是达到页面/列表/数据的结尾。
因此,此时我无法进一步移动并检索其余数据。我甚至尝试使用Insomnia和Postman使用我拥有的最后一个有效光标来检索数据,但我只得到一个没有任何光标的响应。
为什么会这样?
更新
尝试使用REST API时也会发生同样的事情。使用查询API并分析响应头,我看到我只得到34页结果(大约1000个存储库),尽管搜索计数返回的结果超过400,000。
答案 0 :(得分:2)
REST API和GraphQL API都会限制从搜索查询返回的项目数为1,000个结果:https://developer.github.com/v3/search/#about-the-search-api。
就像在Google上搜索一样,您有时会想要查看几页搜索结果,以便找到最符合您需求的项目。为满足这一需求,GitHub Search API为每次搜索提供最多1,000个结果。