Github搜索API如何进行分页?

5
我希望在我的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时,我仍然得到相同的结果,没有限制我想要的页面或每页的数量。

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

Github API提供了这个搜索API的分页功能吗?如果有,我缺少了什么?我该如何使用它?
1个回答

9
total_count是仓库的总数,而不是JSON中的项目数量。
分页按预期工作,请尝试此操作并查看结果,每个请求中的项数为10(如您在最后一个参数"per_page"中设置)。
通过full_name进行,可以更容易地查看每个请求中的项数。
检查这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个条目? - Sagar
由于大小限制,它永远不会返回所有元素,“默认”值为30,可以通过使用per_page来增加到100。 - Ulysses
如果total_count字段表示存储库的总数,那么如果每页显示10个,为什么只有100页? 10 * 100!= 1,726(今天12/1下午2点)。好奇我的思维过程出了什么问题。 - Omnibyte
每页结果列表的限制为100个。我认为你可以有大量的页面,但每个页面最多只能有100个对象。因此,如果您有10000个总计数,则必须在每个页面中遍历100个结果的100个页面。@Omnibyte,我希望它能像这样工作,因为我明天需要它 :) - Ardahan Kisbet
我现在尝试了一下,它返回以下错误对象; { "message": "仅提供前1000个搜索结果", "documentation_url": "https://developer.github.com/v3/search/" } - Ardahan Kisbet
@Ulysses Sagar:你好。我是一个Swift新手,我有和Sagar一样的问题。非常感谢你提出这个问题,并告诉我解决方案! - zzzzou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接