我们正在使用自托管的 ActiveCollab v5.13.60,我正在尝试生成给定特定日期的已完成项目和任务的列表。我一直在玩弄/whats-new/daily/
API 请求,因为它还提供了一个相关的对象,所以我可以轻松地提取项目/任务名称。
据我所知,该请求仅返回最后 50 个项目,如果超过 50 个项目,则可以使用 ?page=X 参数发出额外的请求。
有没有办法这个请求可以返回一个未分页的列表,或者给定日期的所有项目?
谢谢!
我们正在使用自托管的 ActiveCollab v5.13.60,我正在尝试生成给定特定日期的已完成项目和任务的列表。我一直在玩弄/whats-new/daily/
API 请求,因为它还提供了一个相关的对象,所以我可以轻松地提取项目/任务名称。
据我所知,该请求仅返回最后 50 个项目,如果超过 50 个项目,则可以使用 ?page=X 参数发出额外的请求。
有没有办法这个请求可以返回一个未分页的列表,或者给定日期的所有项目?
谢谢!
不幸的是,您必须继续请求下一页,直到没有返回任何内容,然后合并所有结果。
在我们的内部应用程序中,我们有以下函数(在 PHP 中)
/**
* Get pages of data with passed url
* @param [string] $url The api endpoint
* @return [array] All your data
*/
function getPagedData($url) {
// Get all the projects in active collab
$page = 1;
$paged_records = array();
$paged_records_results = $this->activeCollabClient->get($url . '?page=' . $page)->getJson();
$paged_records = array_merge($paged_records, $paged_records_results);
// Loop through pages
while ($paged_records_results = $this->activeCollabClient->get($url . '?page=' . ++$page)->getJson()) {
$paged_records = array_merge($paged_records, $paged_records_results);
}
return $paged_records;
}
然后可以调用它,传递 URL。在您的情况下,它可以像这样使用:
getPagedData('whats-news/daily');
然后,您将获得一个包含所有信息的数组。