8. REST API генератора отчётов

Универсальный REST API предоставляет следующую функциональность для генератора отчётов:

  • Получение списка отчётов.

  • Получение информации об отдельном отчёте.

  • Запуск отчёта и скачивание результата.

  • Получение документации OpenAPI (Swagger).

REST API использует протокол OAuth2 для аутентификации и поддерживает анонимный доступ.

Чтобы отчёт был доступен в REST API, установите флаг Visible for REST API на вкладке Roles and Screens редактора отчёта:

visible for rest
Рисунок 74. Флаг Visible for REST API

Ниже приведено формальное описание некоторых особенностей 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": "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