Пагинация в запросах к партнерскому API
Некоторые запросы возвращают результат не целиком, а постранично. Чтобы получить результат полностью, выполните несколько последовательных запросов — в каждом новом запросе передавайте параметр со следующей страницей результатов.
В зависимости от того, какой параметр нужно передать, пагинация может быть двух типов:
- с идентификатором страницы — параметр
page_token
; - с номером страницы — параметр
page
.
Если в методе доступны оба типа пагинации, используйте идентификатор страницы (page_token
), а не ее номер.
Пагинация с идентификатором страницы
Примеры методов:
- POST businesses/{businessId}/offer-cards
- POST campaigns/{campaignId}/offer-prices
- GET campaigns/{campaignId}/returns
Чтобы получить результат полностью:
-
Выполните запрос, где:
- Не передавайте
page_token
. - При желании передайте
limit
. Тогда этот параметр нужно будет передавать в каждом следующем запросе.
В ответе вернется параметр
paging
. - Не передавайте
-
Если в
paging
вернулся параметрnextPageToken
, значит, есть следующая страница результата. Повторите запрос, где передайте значениеnextPageToken
в параметреpage_token
.Значение параметра
nextPageToken
Это не номер страницы, а строка, которую нужно передать в запросе.
Если параметра нет, то вернулась последняя страница. Больше запросов делать не нужно.
-
Продолжайте выполнять запросы, пока возвращается
nextPageToken
.
Некоторые методы в параметре paging
возвращают prevPageToken
Это идентификатор предыдущей страницы результатов.
Чтобы получить предыдущую страницу, передайте ее идентификатор в параметре page_token
. Для первой страницы prevPageToken
не возвращается.
Пагинация с номером страницы
Часть методов с таким типом пагинации уже устарели
Остальные будут отмечены устаревшими в будущем.
Примеры методов:
Чтобы получить результат полностью:
-
Выполните запрос, где:
- Не передавайте
page
. - При желании передайте
pageSize
. Тогда этот параметр нужно будет передавать в каждом следующем запросе.
В ответе вернется параметр
pager
с количеством страниц результатаpagesCount
. - Не передавайте
-
Если в
pagesCount
вернулось больше одной страницы, повторяйте запросы — в параметреpage
передавайте номера страниц (2
,3
и до последней).