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

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

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

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

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

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

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

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

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

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