Очередь и готовность результата
Пример использует Bash и утилиту jq для чтения JSON. accepted.json — файл ответа, сохранённый при загрузке комплекта.
Узнать состояние
RUN_ID="$(jq -er '.run_id' accepted.json)"
curl --fail-with-body "$NK_BASE/runs/$RUN_ID" \
-H "Authorization: Bearer $NK_KEY"Фрагмент ответа во время проверки
{
"status": "running",
"stage": "analyzing",
"stage_text": "Проверяем",
"progress": {
"percent": 34, "pages_total": 120, "pages_done": 120,
"elapsed_s": 95, "eta_s": null
}
}| status | Что происходит | Ваше действие |
|---|---|---|
| queued | Комплект принят и ожидает запуска. | Продолжайте опрос сохранённого run_id. |
| running | Идёт обработка или подготовка публикации. | Показывайте stage_text. Продолжайте опрос. |
| done | Проверка завершена, результат опубликован. | Получите JSON и PDF. |
| failed | Проверка не завершилась успешно. | Покажите error и refunded. Перед новой загрузкой устраните причину ошибки. |
stage содержит код этапа. stage_text содержит его название для человека. progress содержит percent, pages_total, pages_done и оценку eta_s. null означает, что данных ещё нет. Определяйте готовность по status.
Процент и оценка времени могут измениться.
Время зависит от объёма, форматов документов и очереди. Число одновременных проверок зависит от подключения. Если возникла сетевая ошибка, продолжайте опрос того же run_id с паузами 5–30 секунд. Закрытие браузера не отменяет проверку. Остановка вашей программы также не отменяет проверку.
GET /runs?limit=50 возвращает последние проверки. Новые проверки идут первыми. Допустимые значения limit: от 1 до 200. Для полной истории сохраняйте run_id в своей программе.
Если проверка ещё в очереди, отмените её через POST /runs/{run_id}/cancel. Если обработка уже началась или завершилась, сервер вернёт 409 review_already_started. Отмена сохраняет историю проверки.
Снять проверку с очереди
curl --fail-with-body -X POST "$NK_BASE/runs/$RUN_ID/cancel" \
-H "Authorization: Bearer $NK_KEY"