Постраничная выборка (limit и offset)

Данные параметры предназначены только для операций чтения, т.е. для работы с оператором get

Результаты любой выборки из API принято называть страницей результатов.
Каждая страница не может включать больше 10 000 результатов.
Размер страницы определяется параметром limit и по умолчанию равен 10 000.
Количество пропускаемых элементов при генерации страницы определяется параметром offset.

Если в результате выборки были возвращены не все результаты, то в ответе будет возвращены дополнительные параметры:

  • nextOffset - значение offset для выборки следующией страницы
  • total - общее количество результатов

Примеры

Для примера представим, что всего в нашей выборке 25 результатов.
Мы хотим получить все результаты с ограничением по 10 результатов на страницу.

Запрос


{"limit":10, "offset":0}

Результат


{"result":[ /* первые 10 результатов */ ],"nextOffset":10,"total":25}

Запрос


{"limit":10, "offset":10}

Результат


{"result":[ /* Результаты с 11 по 20 */ ],"nextOffset":20,"total":25}

Запрос


{"limit":10, "offset":20}

Результат


{"result":[ /* Результаты с 21 по 25 */ ] // обратите внимание, так как эта страница последняя, то nextOffset и total возвращены не будут}

Пример SDK

Пример получения списка запросов из проекта %NN%:

<?php $projectId = '%NN%'; // ID of your project $limit = 10; // page size $TVSession = new TV\Session(); $selectorKeywords = new TV\Pen($TVSession, 'get', 'keywords_2', 'keywords'); $selectorKeywords->setData(['project_id' => $projectId]); $selectorKeywords->setLimit($limit); // get all result pages do{ $page = $selectorKeywords->exec(); if(is_null($page->getResult())) return var_dump($page->getErrors()); // $page - array of keywords foreach($page->getResult() as $resultItem){ var_dump($resultItem); } $nextOffset = $page->getNextOffset(); if($nextOffset) $selectorKeywords->setOffset($nextOffset); }while($nextOffset);