【问题标题】:Github Search Api with Pagination?Github Search Api 与分页?
【发布时间】:2016-06-03 18:34:08
【问题描述】:

我想在我的 iOS 应用程序中使用 Github 搜索 API Restfully 以基于“语言”(编程语言)作为搜索的主要参数来查询公共存储库。

从 API 文档中我可以理解,以下 api 可以满足我的需求。

https://api.github.com/search/repositories?q=tetris+language:assembly&sort=stars&order=desc

不过,这会为特定语言返回 370 个此类存储库。

我想在 iOS 应用程序中实现分页,这样我一次只能获取大约 10-30 个整体。我已经看到 github 为他们的一些 Api 提供了分页。

但是,当我尝试使用参数中包含的 'page' 和 'per_page' 的以下 api 时,我仍然得到相同的结果,不限于我想要的页面或 per_page。

https://api.github.com/search/repositories?q=tetris+language:assembly&sort=stars&order=desc&page=1&per_page=10

github api 是否为此搜索 api 提供分页? 如果是这样,我错过了什么?我该如何使用它?

【问题讨论】:

    标签: ios pagination github-api


    【解决方案1】:

    total_count 是存储库的总数,而不是 JSON 中的项目数。

    分页按预期工作,试试这个看看结果,每个请求中的iten数是10(正如你在最后一个参数“per_page”中设置的那样)

    通过full_name 做一个crtl+f,这样会更容易看到每个请求的项目数

    检查这 2 个请求的结果。

    https://api.github.com/search/repositories?q=tetris+language:assembly&sort=stars&order=desc&page=1&per_page=10

    https://api.github.com/search/repositories?q=tetris+language:assembly&sort=stars&order=desc&page=2&per_page=10

    【讨论】:

    • 哦,是的,这确实有效。我假设 total_count 是 JSON 中的结果数!如果我们不包含页面参数,搜索 api 似乎总是返回 30 个整数?
    • 由于大小,它永远不会返回所有元素,“默认”值为30,使用per_page可以达到100。
    • 如果total_count字段表示仓库的总数,那么per_page为10怎么只有100页? 10 * 100 != 1'726(今天 12 月 1 日下午 2 点)。好奇我的思维过程哪里出错了。
    • 100 限制用于每个页面的结果列表计数。我认为您可以拥有大量页面,但一个页面中最多可以有 100 个对象。因此,如果您有 10000 个总数,那么您必须浏览 100 页,每个页面有 100 个结果。 @Omnibyte,我希望它能像这样工作,因为我明天需要它:)
    • 我现在试了一下,它返回错误对象如下; { "message": "只有前 1000 个搜索结果可用", "documentation_url": "developer.github.com/v3/search" }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多