Перейти к содержанию

Экспорт записей табличного списка

Запрос

Тип Метод
GET /value_stores/{id}/download

Описание: метод выгружает записи табличного или белого списка в файл.

Поддерживаются следующие форматы экспорта:

  • json — файл в формате JSON;
  • csv — файл в формате CSV;
  • excel — файл в формате XLSX.

В экспорт попадают только записи с неистёкшим значением _ttl: _ttl равен 0 или больше текущего времени.

Для формата csv дополнительно можно указать разделитель и кодировку.

Пример запроса

GET

http://127.0.0.1/cruddy/v2/value_stores/550e8400-e29b-41d4-a716-446655440000/download?format=json

Параметры пути:

Параметр Тип данных Обязательность Описание
id string (UUID) Required ID табличного или белого списка

Параметры строки запроса:

Параметр Тип данных Обязательность Описание
format string Required Формат экспортируемого файла: json, csv или excel
delimiter string Optional Разделитель значений для csv. По умолчанию — ;
encoding string Optional Кодировка для csv: cp1251, win-1251 или utf-8

Если параметр encoding не передан, для CSV по умолчанию используется Windows-1251.

Пример экспорта в CSV

GET

http://127.0.0.1/cruddy/v2/value_stores/550e8400-e29b-41d4-a716-446655440000/download?format=csv&delimiter=;&encoding=utf-8
Пример экспорта в Excel

GET

http://127.0.0.1/cruddy/v2/value_stores/550e8400-e29b-41d4-a716-446655440000/download?format=excel

Успешный ответ

Статус код: 200 – данные успешно экспортированы.

Формат ответа зависит от значения параметра format.

format Тип содержимого Описание
json application/json Массив записей табличного списка
csv text/csv CSV-файл с записями табличного списка
excel application/octet-stream XLSX-файл с записями табличного списка

Для json возвращается массив записей. Каждая запись содержит _id, _ttl и поля схемы табличного списка.

Пример ответа для format=json

[
  {
    "_id": "<значение>",
    "_ttl": 0,
    "<поле_схемы>": "<значение>"
  }
]

Для csv первая строка содержит _id, поля схемы и _ttl, после чего следуют строки со значениями. Файл передаётся с заголовком Content-Disposition: attachment.

Для excel используются те же колонки: _id, поля схемы и _ttl. Файл также передаётся с заголовком Content-Disposition: attachment.

Другие возможные ответы

Код Ответ Описание
400 Ошибка параметров запроса Не передан ID, формат экспорта или указан недопустимый формат
401 can't get user info: Невозможно аутентифицировать пользователя
404 Хранилище не найдено Табличный список с указанным ID не найден
500 Internal Server Error Ошибка при формировании или выгрузке файла

Возможные ошибки:

  • 400 — "missing uid header" — отсутствует заголовок Pgr-User-ID;
  • 400 — "Pgr-User-Id should be uuid format" — неверный формат Pgr-User-ID;
  • 400 — "format must be one of: json, csv, excel" — параметр format не передан или имеет недопустимое значение;
  • 400 — "id not specified" — не передан параметр id;
  • 401 — "can't get user info:" — невозможно аутентифицировать пользователя;
  • 404 — "StoreDownloadJson error: store not found" — хранилище не найдено при экспорте в json или excel;
  • 404 — "StoreDownloadCsv error: store not found" — хранилище не найдено при экспорте в csv;
  • 500 — "StoreDownloadJson error: ..." — ошибка получения данных при экспорте в json или excel;
  • 500 — "StoreDownloadCsv error: ..." — ошибка получения данных при экспорте в csv;
  • 500 — "ColumnNumberToName failed: ..." — ошибка формирования имени колонки Excel;
  • 500 — "SetCellValue(1st row) failed: ..." — ошибка записи заголовков Excel;
  • 500 — "SetCellValue(rows) failed: ..." — ошибка записи строк Excel;
  • 500 — "write to excel error: ..." — ошибка формирования XLSX-файла;
  • 500 — "Internal Server Error" — ошибка сервера.
Пример ответа с кодом 400

{
  "error": "format must be one of: json, csv, excel"
}
Пример ответа с кодом 404

{
  "error": "StoreDownloadJson error: store not found"
}
Пример ответа с кодом 500

{
  "error": "Internal Server Error"
}