在 Active Collab 中获取分页结果 API
Get pagination results in Active Collab API
我刚刚发现您可以通过 api 通过传入 page 参数来获得分页结果,如下所示:
$projects = $client->get('projects/147/time-records?page=3')->getJson();
有没有办法知道一个项目有多少时间记录,这样我就知道我需要分页多少次?
或者,我将如何检索几页有价值的数据 - 我正在努力处理代码!
当然可以。所有分页结果将包括以下 headers:
X-Angie-PaginationCurrentPage
- 表示当前页面
X-Angie-PaginationItemsPerPage
- 表示每页的项目数
X-Angie-PaginationTotalItems
- 表示整个数据集中的项目数。
当您获得 header 个值时,简单:
$total_pages = ceil($total_items_header_value / $items_per_page_header_value);
将为您提供 collection.
中的页数
备选方案: 您可以遍历页面(通过将 page
GET 参数设置为 1
并递增它)直到得到一个空页面结果(没有记录的页面)。 returns没有记录的页面是最后一页。
我在 Github 上创建了一个问题 - 将等待回复。
现在,我执行以下操作:
// Get all the projects
// Set the page number
$page = 1;
// Create an empty array
$project_records = array();
// Get the first page of results
$project_records_results = $client->get('projects?page=' . $page)->getJson();
// Merge the results with base array
$project_records = array_merge($project_records, $project_records_results);
// Get the next page of results,
// if it returns something merge with the base array and continue
while ($project_records_results = $client->get('projects?page=' . ++$page)->getJson()) {
$project_records = array_merge($project_records, $project_records_results);
}
请注意,headers 现在都是 小写 (v1)!
所以上面的答案应该更正。
让他们打电话:
$headers = $client->get($path)->getHeaders();
工作代码示例来自 /api/v1/:
$paginationCurrentPage = isset($headers['x-angie-paginationcurrentpage'][0]) ? $headers['x-angie-paginationcurrentpage'][0] : NULL;
$paginationItemsPerPage = isset($headers['x-angie-paginationitemsperpage'][0]) ? $headers['x-angie-paginationitemsperpage'][0] : NULL;
$paginationTotalItems = isset($headers['x-angie-paginationtotalitems'][0]) ? $headers['x-angie-paginationtotalitems'][0] : NULL;
我刚刚发现您可以通过 api 通过传入 page 参数来获得分页结果,如下所示:
$projects = $client->get('projects/147/time-records?page=3')->getJson();
有没有办法知道一个项目有多少时间记录,这样我就知道我需要分页多少次?
或者,我将如何检索几页有价值的数据 - 我正在努力处理代码!
当然可以。所有分页结果将包括以下 headers:
X-Angie-PaginationCurrentPage
- 表示当前页面X-Angie-PaginationItemsPerPage
- 表示每页的项目数X-Angie-PaginationTotalItems
- 表示整个数据集中的项目数。
当您获得 header 个值时,简单:
$total_pages = ceil($total_items_header_value / $items_per_page_header_value);
将为您提供 collection.
中的页数备选方案: 您可以遍历页面(通过将 page
GET 参数设置为 1
并递增它)直到得到一个空页面结果(没有记录的页面)。 returns没有记录的页面是最后一页。
我在 Github 上创建了一个问题 - 将等待回复。
现在,我执行以下操作:
// Get all the projects
// Set the page number
$page = 1;
// Create an empty array
$project_records = array();
// Get the first page of results
$project_records_results = $client->get('projects?page=' . $page)->getJson();
// Merge the results with base array
$project_records = array_merge($project_records, $project_records_results);
// Get the next page of results,
// if it returns something merge with the base array and continue
while ($project_records_results = $client->get('projects?page=' . ++$page)->getJson()) {
$project_records = array_merge($project_records, $project_records_results);
}
请注意,headers 现在都是 小写 (v1)! 所以上面的答案应该更正。
让他们打电话:
$headers = $client->get($path)->getHeaders();
工作代码示例来自 /api/v1/:
$paginationCurrentPage = isset($headers['x-angie-paginationcurrentpage'][0]) ? $headers['x-angie-paginationcurrentpage'][0] : NULL;
$paginationItemsPerPage = isset($headers['x-angie-paginationitemsperpage'][0]) ? $headers['x-angie-paginationitemsperpage'][0] : NULL;
$paginationTotalItems = isset($headers['x-angie-paginationtotalitems'][0]) ? $headers['x-angie-paginationtotalitems'][0] : NULL;