Содержание
В выгрузке API Маркета не хватает строк: проверьте последнюю страницу
Если в выгрузке API Маркета не хватает заказов или товаров, сначала проверьте, дошла ли интеграция до последней страницы. Небольшое число записей в ответе ещё не доказывает, что выборка закончилась.
Этот порядок нужен аналитику, который принимает данные от интегратора. Итог проверки: понятна граница выгрузки, а пропущенные страницы отделены от фильтров и последующих преобразований таблицы.
По какому признаку заканчивается выборка
Документация по пагинации описывает последовательность для методов с pageToken:
- Первый запрос выполняют без
pageToken. - Если ответ содержит
paging.nextPageToken, его значение передают следующим запросом вpageToken. - Запросы продолжают, пока приходит следующий токен. Отсутствие
nextPageTokenозначает последнюю страницу.
Токен является строкой, а не номером страницы. Не пытайтесь прибавлять к нему единицу или конструировать следующее значение самостоятельно.
В рекомендациях по интеграции Маркет отдельно предупреждает: число элементов может быть меньше ожидаемого limit. Определять конец нужно по nextPageToken, а не по размеру страницы. Некоторые методы уменьшают слишком большой limit до разрешённого максимума.
Что попросить у интегратора
Возьмите одну конкретную неполную выгрузку. Предлагаем сохранить её метод, кабинет или магазин, период и фильтры, время начала и окончания. Затем запросите короткий журнал прохода:
| Проверка | Что увидеть в журнале |
|---|---|
| Первая страница | Запрос без токена и полученный ответ |
| Продолжение | Токен из ответа использован следующим запросом |
| Завершение | Успешный ответ без токена следующей страницы |
| Ошибка посередине | Где остановился проход и какие страницы уже сохранены |
Не включайте API-ключи в такой журнал. Для совместной проверки нужны параметры выборки, состояние прохода и число записей по страницам.
Если на последней полученной странице есть токен, а следующего запроса нет, выгрузка не подтверждена как полная. Сначала выясните причину остановки. Это может быть условие завершения в интеграции, ошибка запроса или незавершённая задача; по одному отсутствующему заказу выбрать причину нельзя.
Не смешивайте полноту прохода с полнотой бизнеса
Даже завершённый проход возвращает только данные, подходящие под условия запроса. Сопоставьте фильтры и смысл даты с задачей аналитика. Затем найдите конкретный ожидаемый объект по его идентификатору и проверьте, должен ли он входить в эту выборку.
Если API-ответы содержат нужную запись, а итоговая таблица нет, переходите к объединению страниц, фильтрации и преобразованиям после получения данных. Не меняйте одновременно фильтры API и правила обработки таблицы.
Проверку можно закрыть, когда сохранён признак последней страницы, параметры соответствуют задаче, а исчезновение контрольной записи объяснено конкретным этапом. До этого обозначайте набор как непроверенный, а не как полную основу для расчёта показателей.
Комментарии 0