Mindbox
Экспорты

Общий принцип экспортов

Общий контракт постановки задачи экспорта

Получить неизменяемые данные можно через постановку задач экспорта.
Поставить задачу можно:

  1. С помощью программного запроса в операцию, которую необходимо добавить в интерфейсе
  2. С помощью задачи периодического экспорта на FTP/SFTP. Подробней можно прочитать здесь.

Общая схема запросов для постановки задачи экспорта:

  1. Запрос экспорта с передачей условий выборки экспорта и получение ID задачи экспорта.
  2. Запрос статуса поставленной задачи экспорта. Получение статуса или ссылки на результат, в случае готовности.
  3. Скачивание файлов с результатами экспорта. Обработка данных

Первый запрос на поставку задачи экспорта

Во входных условиях может быть:

  • Id сегмента
  • временной период, за который необходимо выгрузить данные
  • данные подключения к внешнему хранилищу, для выгрузки результатов
  • либо может быть пустое тело запроса

Описание всех входных параметров операции смотрите в описании конкретной операции.

XMLText
POST https://api.mindbox.ru/v3/operations/sync?endpointId={endpointId}&operation={operation} Accept: application/json Content-Type: application/json Authorization: SecretKey {Секретный ключ} { <Тело запроса описано в описании конкретной операции экспорта> }

Ответ об успешной постановке задачи экспорта

JSONCode
Content-Type: application/json {   "status": "Success",   "exportId": "<ID экспорта, который нужно передать в следующем запросе>" }

На данном этапе может быть возвращена ошибка валидации, если были переданны некорректные условия для постановки задачи экспорта.

Ответ при повторном запросе

Параметр isDuplicate в ответе указывает, что аналогичный экспорт уже выполняется. Воспользуйтесь запросом для проверки статуса.

JSONCode
Content-Type: application/json {   "status": "Success",   "exportId": "<ID экспорта, который нужно передать в следующем запросе>", "isDuplicate": "<Вызван повторный запрос экспорта. Экспорт с аналогичными настройками уже формируется>", }

Запрос о статусе задачи экспорта

XMLText
POST https://api.mindbox.ru/v3/operations/sync?endpointId={endpointId}&operation={operation} Accept: application/json Content-Type: application/json Authorization: SecretKey {Секретный ключ} {  "exportId": "<ID экспорта>" }

Ответ о статусе готовности файла (в случае неготовности)

XMLText
Content-Type: application/json; charset=utf-8 {     "status": "Success",     "exportResult": {         "processingStatus": "NotReady"     } }

Одновременно может работать не больше двух задач экспорта.

Ответ о статусе готовности файла (в случае готовности)

XMLText
Content-Type: application/json; charset=utf-8 {     "status": "Success",     "exportResult": {         "processingStatus": "Ready",         "urls": [ "<Ссылка на файл с результатом>", "<Ссылка на файл с результатом>", .... ]     } }
  • файлы с результатами экспорта хранятся 180 дней
  • нет ограничений на объем запрашиваемой информации
  • файлы разбиваются по количеству строк, которое стремится к 1 млн., но возможны файлы как большего, так и меньшего объема
  • нет пагинации, все данные выгружаются в набор файлов
  • данные по ссылкам передаются gzip методом
  • формат файла выбирается в настройках шага экспорта и может быть xml/json/csv
  • кодировка файлов UTF-8

Ответ о статусе готовности файла (в случае отмены)

Возможны ситуации, когда экспорт был отменен по какой либо причине, в таком случае будет возвращен соответствующий статус, а задача остановлена.

XMLText
Content-Type: application/json; charset=utf-8 {     "status": "Success",     "exportResult": {         "processingStatus": "Cancelled",         "cancellationReason": “<причина отмены>”     } }

Задача может быть отменена:

  • из интерфейса административной панели
  • из за внутренней ошибки
  • из за превышения внутренних лимитов потребления ресурсов. В таком случае следует упростить фильтр сегмента, который используется для экспорта или поставить задачу с меньшим запрашиваемым периодом
Last modified on