6. REST API генератора отчетов
Универсальный REST API предоставляет следующую функциональность для генератора отчетов:
-
Получение списка отчетов.
-
Получение информации об отдельном отчете.
-
Запуск отчета и скачивание результата.
-
Получение документации OpenAPI (Swagger).
REST API использует протокол OAuth2 для аутентификации и поддерживает анонимный доступ.
Чтобы отчет был доступен в REST API, необходимо установить флаг Visible for REST API на вкладке Roles and Screens редактора отчета:
Ниже приведено формальное описание некоторых особенностей REST API для генератора отчетов. Больше инфомации о REST API и получении OAuth-токена вы можете найти в Руководстве по разработке приложений.
- Получение списка отчетов
-
Чтобы получить список всех существующих отчетов, необходимо выполнить GET запрос по адресу:
/rest/reports/v1/report
Например:
GET http://localhost:8080/app/rest/reports/v1/report HTTP/1.1 Authorization: Bearer f5a2b4b1-a121-4563-9519-dd3c0b116689 Content-Type: application/json
Ответ будет содержать краткую информацию обо всех отчетах с установленным флагом Visible for REST API:
{ "id": "2dd27fbf-8830-416a-899f-339543f8f27a", "name": "Books by author" }, { "id": "2f07c9fe-5d6d-48cf-876f-8c02ac1f6c3c", "name": "Book availability in department" }
- Получение информации об отчете
-
Для получения детальной информации об отчете нужно выполнить GET запрос по адресу:
/rest/reports/v1/report/{id}
Последняя часть запроса здесь - это идентификатор нужного отчета:
GET http://localhost:8080/app/rest/reports/v1/report/2dd27fbf-8830-416a-899f-339543f8f27a HTTP/1.1
Возвращаемый объект JSON будет содержать следующую информацию об отчете:
-
ID
-
имя отчета
-
код отчета (если задан)
-
имеющиеся шаблоны
-
параметры и их типы
{ "id": "2dd27fbf-8830-416a-899f-339543f8f27a", "name": "Books by author", "templates": [ { "code": "DEFAULT", "outputType": "XLS" } ], "inputParameters": [ { "name": "Author", "alias": "author", "type": "ENTITY", "required": true, "hidden": false, "entityMetaClass": "library$Author" } ] }
-
- Запуск отчета
-
Чтобы выполнить отчет, выполните POST отчет по адресу:
/rest/reports/v1/run/{id}
Последняя часть запроса здесь - это идентификатор нужного отчета:
POST http://localhost:8080/app/rest/reports/v1/run/2dd27fbf-8830-416a-899f-339543f8f27a HTTP/1.1
Параметры отчета можно передать в теле запроса:
{parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
Если необходимо запустить отчет с шаблоном, отличным от шаблона по умолчанию, код шаблона можно также передать в теле запроса:
{template: 'Template_1', parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
- Получение документации Swagger
-
Полная документация Swagger для дополнения Генератор отчетов доступна с помощью GET запроса по адресу:
http://localhost:8080/app/rest/reports/v1/docs/swagger.json