Получить результаты разбивки на страницы в Active Collab API

Я только что обнаружил, что вы можете получить результаты разбивки на страницы через api, передав параметр страницы следующим образом:

$projects = $client->get('projects/147/time-records?page=3')->getJson(); 

Есть ли способ узнать, сколько записей времени имеет проект, поэтому я знаю, сколько раз мне нужно разбивать на страницы?

В качестве альтернативы, как я могу найти несколько страниц с данными – я борюсь с кодом!

Solutions Collecting From Web of "Получить результаты разбивки на страницы в Active Collab API"

Я создал проблему в 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); } 

Конечно. Все результаты с разбивкой по страницам будут включать следующие заголовки:

  • X-Angie-PaginationCurrentPage – указывает текущую страницу
  • X-Angie-PaginationItemsPerPage – указывает количество элементов на странице
  • X-Angie-PaginationTotalItems – указывает количество элементов во всем наборе данных.

Когда вы получаете значения заголовка, просто:

 $total_pages = ceil($total_items_header_value / $items_per_page_header_value); 

даст вам количество страниц, находящихся в коллекции.

Альтернатива: вы можете перебирать страницы (начиная с параметра page GET, установленного в 1 , и увеличивая его), пока не получите пустой результат (страница без записей). Страница, которая не возвращает записей, является последней.