Пагинация в запросах к API Яндекс Маркета для продавцов
Некоторые запросы возвращают результат не целиком, а постранично. Чтобы получить результат полностью, выполните несколько последовательных запросов — в каждом новом запросе передавайте параметр со следующей страницей результатов.
В зависимости от того, какой параметр нужно передать, пагинация может быть двух типов:
- с идентификатором страницы — параметр
page_token; - с номером страницы — параметр
page.
Если в методе доступны оба типа пагинации, используйте идентификатор страницы (page_token), а не ее номер.
Пагинация с идентификатором страницы
Примеры методов:
- POST v2/businesses/{businessId}/offer-cards
- POST v2/campaigns/{campaignId}/offer-prices
- GET v2/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и до последней).