返回所有项目/whats-new API 调用

问题描述 投票:0回答:1

我们正在使用自托管的 ActiveCollab v5.13.60,我正在尝试生成给定特定日期的已完成项目和任务的列表。我一直在玩弄

/whats-new/daily/
API 请求,因为它还提供了一个相关的对象,这样我就可以轻松地提取项目/任务名称。

据我所知,该请求仅返回最后 50 个项目,如果项目超过 50 个,则可以使用 ?page=X 参数发出其他请求。

此请求是否可以返回未分页的列表或给定日期的所有项目?

谢谢!

php activecollab
1个回答
1
投票

不幸的是,你必须不断请求下一页,直到没有任何返回,然后合并所有结果。

在我们的内部应用程序中,我们有以下函数(在 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');

然后您将获得一个返回的数组,其中包含所有信息。

© www.soinside.com 2019 - 2024. All rights reserved.