2

因此,我创建了一个查询来使用其 GraphQL API 从 Github 检索一些数据(使用 REST API 测试;同样的问题)。查询部分显示如下(仅显示重要内容):

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 个结果。

4

1 回答 1

2

REST API 和 GraphQL API 都将搜索查询返回的项目数限制为 1,000 个结果:https ://developer.github.com/v3/search/#about-the-search-api 。

就像在 Google 上搜索一样,您有时希望查看几页搜索结果,以便找到最符合您需求的项目。为了满足这一需求,GitHub 搜索 API 为每次搜索提供多达 1,000 个结果。

于 2018-01-29T23:41:10.860 回答