返回所有项目/什么是新的API调用

时间:2017-10-09 12:00:28

标签: activecollab

我们正在使用自托管的ActiveCollab v5.13.60,并且我试图在给定特定日期的情况下生成已完成项目和任务的列表。我一直在玩/whats-new/daily/ API请求,因为它还提供了一个相关对象,因此我可以轻松地提取项目/任务名称。

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

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

谢谢!

1 个答案:

答案 0 :(得分: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');

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