Задания
Опрашивайте фоновую работу и получайте все страницы результатов.
GET https://www.ninjabuy.com/api/v1/jobs/{id} требует Bearer-токен того же аккаунта. Отсутствующие, неизвестные и чужие задания возвращают 404.
Жизненный цикл
job.status | Значение |
|---|---|
queued | Ожидает запуска. |
running | Идёт обработка; могут появиться новые результаты. |
done | Обработка завершена. Проверьте статус каждого результата. |
failed | Задание завершилось с ошибкой. Прочитайте job.error, если поле есть. |
job содержит id, kind, status и startedAt, а также необязательные progress (done, total), finishedAt, result и error. Временные метки — миллисекунды с начала эпохи Unix. При queued или running поле poll_after_seconds и заголовок Retry-After указывают время ожидания; начальная рекомендация — 5 секунд.
Пакеты ссылок имеют kind: "link_mints". Итоговый result сообщает total, converted, failed и необязательные campaign и label. Здесь failed считает значения, на которые получен ответ без преобразования; это не означает статус failed у всего задания. Преобразования таблиц имеют kind: "sheet_conversion"; итоговый job.result содержит счётчики и подписанный URL скачивания XLSX. Схема задания также охватывает sheet_read, picture_copy и resolution_run.
Постраничное чтение по курсору
Ответ содержит job, results, cursor, has_more и request_id. На каждой странице до 50 результатов в порядке ввода.
- Опустите
cursorдля первой страницы (смещение 0). - Обработайте
resultsи сохраните полученныйcursor, если он не равен null. - Если
has_moreравно true, запросите следующую страницу с?cursor=RETURNED_CURSOR. - Если
has_moreравно false, а задание имеет статус queued или running, подождитеpoll_after_secondsи опросите снова с сохранённым курсором. Позже могут появиться новые результаты. - Завершайте только когда задание имеет статус
doneилиfailedи все страницы результатов прочитаны (cursorравен null).
Курсор должен быть единственным параметром запроса из 1–6 цифр (от 0 до 999999). Неправильные или повторяющиеся параметры курсора возвращают 400. Одного has_more: false недостаточно для завершения. См. примеры curl.