2017-10-09 41 views
0

我們正在使用自託管的ActiveCollab v5.13.60,並且我正在嘗試生成已完成的項目和給定特定日期的任務的列表。我一直在玩/whats-new/daily/ API請求,因爲它也提供了一個相關的對象,所以我可以很容易地將項目/任務名稱。返回所有項目/最新的API調用

從我能告訴請求只返回最後50個項目,如果有超過50個項目,則可以使用?page = X參數進行其他請求。

有沒有一種方法可以返回一個未分頁的列表,或全部項目在給定的一天?

謝謝!

回答

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'); 

然後,您將得到一個包含所有信息的數組。

相關問題