我正在开发一个在 Stack Exchange 的每个站点上生成用户时间线的应用程序。我们在 SharePoint.SE 上有一些用户。
由于我想要所有站点的列表,因此我正在尝试使用 API 2.2 获取它
GET /2.2/sites/
如此处所示。但它只获得部分站点。响应缺少 Beer.SE、SharePoint.SE 等网站。
我该如何找回它们?
我正在开发一个在 Stack Exchange 的每个站点上生成用户时间线的应用程序。我们在 SharePoint.SE 上有一些用户。
由于我想要所有站点的列表,因此我正在尝试使用 API 2.2 获取它
GET /2.2/sites/
如此处所示。但它只获得部分站点。响应缺少 Beer.SE、SharePoint.SE 等网站。
我该如何找回它们?
您需要传递其他参数。Beer.SE
以 100出现在page
3 上pagesize
:
https://api.stackexchange.com/docs/sites#page=3&pagesize=100&filter=default&run=true
不带参数时,默认pagesize
为 30 results。您可以通过检查common wrapperhas_more
中的参数来判断是否有比调用中返回的更多的项目。
在这种情况下,页面大小为 3,总共有 3 个页面,而 Beer.SE 恰好位于最后一页。
重新阅读网站文档后,它说
此方法的 pagesize 参数是无限制的,这是为了承认对于许多应用程序而言,重复从 /sites 获取会使启动任务不必要地复杂化。
这意味着您可以将页面大小设置为 1000,并且 Beer.SE 将出现在该结果中。此时,没有 1,000 个 Stack Exchange 站点,因此可以使用。