Онлайн- и офлайн-отчет
Выбор режима
В зависимости от параметров и объема данных в отчете, сервер Директа может сформировать отчет в режиме онлайн или офлайн. Режим можно указать в HTTP-заголовке запроса processingMode:
- processingMode: online
-
Отчет формируется в режиме онлайн. Если отчет успешно сформирован, он будет передан в теле ответа. Если отчет не может быть сформирован в режиме онлайн, возвращается ошибка.
- processingMode: offline
- Отчет ставится в очередь на формирование в режиме офлайн. Проверять готовность отчета нужно с помощью повторных запросов с теми же параметрами, см. подраздел Как проверить готовность офлайн-отчета. Рекомендуемый интервал проверки указан в HTTP-заголовке ответа retryIn. Если формирование отчета завершено успешно, сервер возвращает отчет в теле ответа.
- processingMode: auto
-
Сервер автоматически выбирает режим формирования отчета. Если отчет успешно сформирован в режиме онлайн, он будет передан в теле ответа. Если отчет не может быть сформирован в режиме онлайн, он ставится в очередь на формирование в режиме офлайн. Приложение должно поддерживать оба режима.
Отсутствие заголовка эквивалентно значению auto.
Как проверить готовность офлайн-отчета
Схема запросов и ответов для режимов offline и auto представлена ниже.
Последовательность действий для режима auto:
Отправьте запрос, инициирующий формирование отчета. Укажите в запросе HTTP-заголовок processingMode: auto.
В ответе сервера указан один из следующих HTTP-кодов:
200 — отчет успешно сформирован в режиме онлайн и передан в теле ответа.
201 — отчет успешно поставлен в очередь на формирование в режиме офлайн. Переходите к шагу 2.
400 — ошибка в параметрах запроса либо превышено ограничение на количество запросов или отчетов в очереди. В этом случае проанализируйте сообщение об ошибке, скорректируйте запрос и отправьте его снова.
500 — при формировании отчета произошла ошибка на сервере. Если для этого отчета ошибка на сервере возникла впервые, попробуйте сформировать отчет заново. Если ошибка повторяется, обратитесь в службу поддержки.
Спустя интервал времени, указанный в HTTP-заголовке ответа retryIn (или другой выбранный вами интервал), отправьте повторный запрос с теми же параметрами.
В ответе сервера указан один из следующих HTTP-кодов:
200 — отчет успешно сформирован и передан в теле ответа.
202 — формирование отчета еще не завершено. Повторите шаг 2.
500 — при формировании отчета произошла ошибка на сервере. Если для этого отчета ошибка на сервере возникла впервые, попробуйте сформировать отчет заново — вернитесь к шагу 1. Если ошибка повторяется, обратитесь в службу поддержки.