API генерации отчетов¶
Микросервис генерации отчетов, входящий в состав решения по мониторингу ТКО, предоставляет возможность создавать отчеты на основе данных, собранных функциональным решением. Отчеты формируются асинхронно: запрос на генерацию отправляется через API, после чего микросервис обрабатывает данные и сохраняет результат в хранилище. В зависимости от типа отчета поддерживаются csv и xlsx форматы.
Структура объекта отчета и запроса на его создание универсальна, но типы отчетов (kind) и фильтры зависят от конкретного функционального решения и описаны в соответствующем разделе.
Объект отчета¶
Объект отчета хранится в базе данных и описывает запрос, настройки и статус выполнения.
{
"name": "string", // (1)!
"kind": "string", // (2)!
"output_type": "xlsx", // (3)!
"filters": {}, // (4)!
"csv_settings": null, //(5)!
"xlsx_settings": { // (6)!
"image_type": "link", // (7)!
"image_width": 0, // (8)!
"default_row_width": 0, // (9)!
"headers_format": { // (10)!
"row_height": 0, // (11)!
"bold": false, // (12)!
"bottom": 0, // (13)!
"border": 0, // (14)!
"align": "center", // (15)!
"valign": "vcenter", // (16)!
"text_wrap": false, // (17)!
"bg_color": "string", // (18)!
"font_color": "string" // (19)!
},
"data_format": { // (20)!
"row_height": 0, // (21)!
"bold": false, // (22)!
"bottom": 0, // (23)!
"border": 0, // (24)!
"align": "center", // (25)!
"valign": "vcenter", // (26)!
"text_wrap": false, // (27)!
"bg_color": "string", // (28)!
"font_color": "string" // (29)!
}
},
"id": "string", // (30)!
"created_at": "1970-01-01T00:00:00.000Z", // (31)!
"updated_at": "1970-01-01T00:00:00.000Z", // (32)!
"status": "created", // (33)!
"status_msg": "string", // (34)!
"org_id": "string", // (35)!
"blober_path": "string" // (36)!
}
- Название отчета, задаваемое пользователем для удобства идентификации
- Тип отчета, уникальный для каждого функционального решения
- Формат вывода отчета.
- Фильтры для выборки данных. Структура и доступные ключи зависят от
kindи описаны в разделе конкретного ФР - Настройки для формата CSV.
- Настройки для формата Excel.
- Тип отображения изображений в Excel:
"link","image" - Ширина изображения в пикселях. Применяется, если в отчете используются изображения
- Ширина строки по умолчанию в таблице Excel
- Форматирование заголовков таблицы в Excel
- Высота строки заголовков в пикселях
- Жирный шрифт для заголовков
- Толщина нижней границы заголовков
- Толщина общей границы заголовков
- Горизонтальное выравнивание текста в заголовках
- Вертикальное выравнивание текста в заголовках
- Перенос текста в заголовках
- Цвет фона заголовков в формате HEX
- Цвет шрифта заголовков в формате HEX
- Форматирование данных таблицы в Excel
- Высота строки данных в пикселях
- Жирный шрифт для данных
- Толщина нижней границы данных
- Толщина общей границы данных
- Горизонтальное выравнивание текста в данных
- Вертикальное выравнивание текста в данных
- Перенос текста в данных
- Цвет фона данных в формате HEX
- Цвет шрифта данных в формате HEX
- Уникальный идентификатор отчета, генерируемый системой
- Дата и время создания запроса в формате ISO 8601
- Дата и время последнего обновления статуса в формате ISO 8601
- Статус выполнения отчета:
"created","inprogress","success","error" - Сообщение о статусе, например, описание ошибки
- Идентификатор организации, для которой формируется отчет
- Ссылка на готовый отчет в blob storage. Заполняется после завершения генерации
{
"name": "string", // (1)!
"kind": "string", // (2)!
"output_type": "csv", // (3)!
"filters": {}, // (4)!
"csv_settings": { // (5)!
"delimiter": "string" // (6)!
},
"xlsx_settings": null // (7)!
"id": "string", // (8)!
"created_at": "1970-01-01T00:00:00.000Z", // (9)!
"updated_at": "1970-01-01T00:00:00.000Z", // (10)!
"status": "created", // (11)!
"status_msg": "string", // (12)!
"org_id": "string", // (13)!
"blober_path": "string" // (14)!
}
- Название отчета, задаваемое пользователем для удобства идентификации
- Тип отчета, уникальный для каждого функционального решения
- Формат вывода отчета. Поддерживаемые значения:
"csv"(CSV-файл) или"xlsx"(Excel-файл) - Фильтры для выборки данных. Структура и доступные ключи зависят от
kindи описаны в разделе конкретного ФР - Настройки для формата CSV.
- Разделитель полей в CSV-файле (например,
",",";") - Настройки для формата Excel.
- Уникальный идентификатор отчета, генерируемый системой
- Дата и время создания запроса в формате ISO 8601
- Дата и время последнего обновления статуса в формате ISO 8601
- Статус выполнения отчета:
"created","inprogress","success","error" - Сообщение о статусе, например, описание ошибки
- Идентификатор организации, для которой формируется отчет
- Ссылка на готовый отчет в blob storage. Заполняется после завершения генерации
Поля csv_settings и xlsx_settings заполняются в зависимости от значения output_type. Если используется csv, то xlsx_settings может быть null, и наоборот.
Создание отчета¶
При создании отчета в системе формируется специальное сообщение для сервиса генерации отчетов функционального решения. Структура запроса аналогична объекту отчета, но содержит только поля, необходимые для запуска генерации:
{
"name": "string", // (1)!
"kind": "string", // (2)!
"output_type": "xlsx", // (3)!
"filters": {}, // (4)!
"xlsx_settings": { // (5)!
"image_type": "link", // (6)!
"image_width": 0, // (7)!
"default_row_width": 0, // (8)!
"headers_format": { // (9)!
...
},
"data_format": { // (10)!
...
}
}
}
- Название отчета
- Тип отчета
- Формат вывода:
"csv"или"xlsx" - Фильтры данных
- Настройки для Excel
- Тип изображений: "link" или "image"
- Ширина изображения
- Ширина строки
- Формат заголовков
- Формат данных