REST API отчетов
REST API дополнения Reports предоставляет следующие функции:
-
Получение списка отчетов.
-
Получение деталей по конкретному отчету.
-
Запуск отчета и получение результата.
-
Получение деталей по конкретной группе отчетов.
-
Получение документации Swagger.
REST API отчетов использует протокол OAuth2 для аутентификации таким же образом, как и Generic REST.
Чтобы включить REST API для отчетов, убедитесь, что ваш build.gradle содержит следующие зависимости:
implementation 'io.jmix.rest:jmix-rest-starter'
implementation 'io.jmix.authserver:jmix-authserver-starter'
Чтобы сделать отчет доступным через REST API, установите флажок Available through REST API на вкладке Детали отчета.
Ниже мы предоставляем формальное описание некоторых функций, специфичных для дополнения Reports. Для получения дополнительной информации о том, как получить токен OAuth и о других функциях REST API, смотрите документацию дополнения REST API.
Получение списка отчетов
Список существующих отчетов можно получить с помощью следующего GET запроса:
/rest/reports/report
Например:
GET http://localhost:8080/rest/reports/report
Authorization: Bearer j-Rn3PPAiH7cZZfaDiDWQEDp9YU
Content-Type: application/json
Тело ответа будет содержать список краткой информации об отчетах, помеченных как Available through REST API:
[
{
"id": "cb090350-2694-e2bb-f5d9-813daa8dc418", (1)
"name": "booksAvailability(xlsx)",(2)
"code": "BOOKS_AVAIL",(3)
"group": "4e083530-0b9c-11e1-9b41-6bdaa41bff94"(4)
},
{
"id": "d8c7f4c5-2dd7-c7f1-7286-f8dd286d2603",
"name": "LiteratureTypes(csv)",
"group": "4e083530-0b9c-11e1-9b41-6bdaa41bff94"
}
]
| 1 | ID отчета, |
| 2 | Название отчета, |
| 3 | Системный код отчета (если существует), |
| 4 | ID группы. |
Получение информации об отчете
Детальная информация о конкретном отчете извлекается с помощью следующего GET запроса:
/rest/reports/report/{id}
Последняя часть запроса здесь - это идентификатор отчета, например:
GET http://localhost:8080/rest/reports/report/cb090350-2694-e2bb-f5d9-813daa8dc418
Возвращаемый JSON-объект будет содержать следующую информацию о переданном отчете:
-
ID
-
название отчета
-
ID группы
-
системный код (если существует)
-
параметры и их типы
{
"id": "cb090350-2694-e2bb-f5d9-813daa8dc418",
"name": "booksAvailability(xlsx)",
"code": "BOOKS_AVAIL",
"group": "4e083530-0b9c-11e1-9b41-6bdaa41bff94",
"templates": [
{
"code": "DEFAULT",
"outputType": "XLSX"
}
],
"inputParameters": []
}
Запуск отчета
Чтобы запустить отчет, отправьте следующий POST запрос:
/rest/reports/run/{id}
Последняя часть запроса здесь - это идентификатор отчета, например:
POST http://localhost:8080/rest/reports/run/2dd27fbf-8830-416a-899f-339543f8f27a
Параметры отчета передаются в теле запроса:
{parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
Чтобы напечатать отчет с нестандартным шаблоном, передайте код шаблона в теле запроса:
{template: 'Template_1', parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
Получение информации о группе отчетов
Детальная информация о конкретной группе отчетов извлекается с помощью следующего GET запроса:
/rest/reports/group/{groupId}
Последняя часть запроса здесь - это идентификатор группы, например:
GET http://localhost:8080/rest/reports/group/4e083530-0b9c-11e1-9b41-6bdaa41bff94
Возвращаемый JSON-объект будет содержать следующую информацию о переданной группе:
-
ID группы
-
название группы
-
код группы (если существует)
{
"id": "4e083530-0b9c-11e1-9b41-6bdaa41bff94",
"title": "General",
"code": "ReportGroup.default"
}
Получение документации OpenAPI
Полная документация OpenAPI по дополнению Reports может быть получена с помощью GET запроса по адресу:
http://localhost:8080/rest/reports/docs/openapi.json
http://localhost:8080/rest/reports/docs/openapi.yaml
|
При получении |