Экспорт записей табличного списка
Запрос
| Тип | Метод |
|---|---|
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"
}