8. REST API генератора отчётов
Универсальный REST API предоставляет следующую функциональность для генератора отчётов:
-
Получение списка отчётов.
-
Получение информации об отдельном отчёте.
-
Запуск отчёта и скачивание результата.
-
Получение документации OpenAPI (Swagger).
REST API использует протокол OAuth2 для аутентификации и поддерживает анонимный доступ.
Чтобы отчёт был доступен в REST API, установите флаг Visible for REST API на вкладке Roles and Screens редактора отчёта:
Ниже приведено формальное описание некоторых особенностей REST API для генератора отчётов. Больше информации о REST API и получении OAuth-токена можно найти в документации по аддону REST API.
- Получение списка отчётов
-
Чтобы получить список всех существующих отчётов, выполните 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