Dashboards API
Dashboards API pпредоставляет возможность управлять дашбордами.
Дашборд состоит из:
- поискового запроса
- интервала поиска
- виджетов: агрегаций и гистограммы
- списка закрепленных столбцов таблицы логов
Для работы API требуется база данных PostgreSQL и Авторизация, которые должны быть настроены в конфигурации.
HTTP API
Базовый URL-адрес: /dashboards/v1
Владелец дашборда берется из заголовка Authorization
.
Вы также можете использовать swagger-файл для подробного просмотра HTTP API.
POST /
Создает дашборд.
Авторизация: ДА
Тело запроса (application/json):
name
(string, required): Название дашборда.meta
(string, required): Метаданные дашборда в форматеjson
, которые используются frontend-приложением.
Запрос
curl -X POST \
"http://localhost:5555/dashboards/v1/" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>" \
-d '
{
"name": "my dashboard",
"meta": "{\"histogram\":false,\"aggregations\":[{\"fn\":\"count\",\"field\":\"level\"}],\"query\":\"_exists_:level\",\"columns\":[\"level\"]}"
}'
Ответ
{
"uuid": "066333fc-0317-7000-b1b1-e2ceaa140af1"
}
POST /all
Возвращает список дашбордов всех пользователей.
Авторизация: ДА
Тело запроса (application/json):
limit
(int, required): Ограничение размера возвращаемого списка.offset
(int, optional): Смещение от начала списка.
Запрос
curl -X POST \
"http://localhost:5555/dashboards/v1/all" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>" \
-d '
{
"limit": 3,
"offset": 0
}'
Ответ
{
"dashboards": [
{
"uuid": "066b2360-9037-7000-9382-9b33a690bf17",
"name": "old",
"owner_name": "bobrov11"
},
{
"uuid": "066b236b-a06c-7000-82ff-62bd329b5123",
"name": "my dashboard",
"owner_name": "ivanovivan"
},
{
"uuid": "066b235e-52a4-7000-9fee-759d4b0b152c",
"name": "test",
"owner_name": "ivanovivan"
}
]
}
POST /my
Возвращает список дашбордов текущего пользователя.
Авторизация: ДА
Тело запроса (application/json):
limit
(int, required): Ограничение размера возвращаемого списка.offset
(int, optional): Смещение от начала списка.
Запрос
curl -X POST \
"http://localhost:5555/dashboards/v1/my" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>" \
-d '
{
"limit": 2,
"offset": 0
}'
Ответ
{
"dashboards": [
{
"uuid": "066b236b-a06c-7000-82ff-62bd329b5123",
"name": "my dashboard"
},
{
"uuid": "066b235e-52a4-7000-9fee-759d4b0b152c",
"name": "test"
}
]
}
POST /search
Возвращает список дашбордов, удовлетворяющих поисковому запросу. Поиск выполняется по названию дашборда.
Авторизация: ДА
Тело запроса (application/json):
query
(string, required): Поисковый запрос.limit
(int, required): Ограничение размера возвращаемого списка.offset
(int, optional): Смещение от начала списка.filter
(object, optional): Поисковый фильтр.owner_name
(string, optional): Фильтрация по владельцу.
Запрос
curl -X POST \
"http://localhost:5555/dashboards/v1/search" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>" \
-d '
{
"query": "test",
"limit": 2,
"offset": 0
}'
Ответ
{
"dashboards": [
{
"uuid": "066b236b-a06c-7000-82ff-62bd329b5123",
"name": "my test dashboard",
"owner_name": "ivanivanov"
},
{
"uuid": "066b235e-52a4-7000-9fee-759d4b0b152c",
"name": "123test123",
"owner_name": "bobrov11"
}
]
}
GET /{uuid}
Извлекает определенный дашборд по его идентификатору.
Авторизация: ДА
Параметры:
uuid
(string, required): Уникальный идентификатор дашборда.
Запрос
curl -X GET \
"http://localhost:5555/dashboards/v1/066333fc-0317-7000-b1b1-e2ceaa140af1" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>"
Ответ
{
"name": "my dashboard",
"meta": "{\"histogram\":false,\"aggregations\":[{\"fn\":\"count\",\"field\":\"level\"}],\"query\":\"_exists_:level\",\"columns\":[\"level\"]}",
"owner_name": "ivanivanov"
}
PATCH /{uuid}
Обновляет определенный дашборд по его идентификатору.
Авторизация: ДА
Параметры:
uuid
(string, required): Уникальный идентификатор дашборда.
Тело запроса (application/json):
name
(string, optional): Название дашборда.meta
(string, optional): Метаданные дашборда в форматеjson
, которые используются frontend-приложением.
Запрос
curl -X PATCH \
"http://localhost:5555/dashboards/v1/066333fc-0317-7000-b1b1-e2ceaa140af1" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>" \
-d '
{
"name": "new dashboard name"
}'
Ответ
{}
DELETE /{uuid}
Удаляет определенный дашборд по его идентификатору.
Авторизация: ДА
Параметры:
uuid
(string, required): Уникальный идентификатор дашборда.
Запрос
curl -X DELETE \
"http://localhost:5555/dashboards/v1/066333fc-0317-7000-b1b1-e2ceaa140af1" \
-H "accept: application/json" \
-H "Authorization: Bearer <token>"
Ответ
{}