4. Работа с сервером мониторинга¶
Сервер мониторинга MERTECH — платформа для управления инфраструктурой, которая помогает контролировать работу большого числа оборудования (весов, модулей распознавания): ведет сбор статистики, мониторит выполнение различных задач, например, распределение мета-моделей (данных о распознавании товаров). Модули распознавания подключаются к серверу мониторинга через агента MERTECH Vision AI. Для каждого устройства — свой агент.
В разделе представлены эндпоинты для работы с сервером. Всю логику авторизации в системе сервис берет на себя и возвращает полноценный ответ от системы. Описанные методы являются дополнением к работе сервера мониторинга, чтобы реализовать часть функционала по объединению физического и виртуального устройств в клиентском приложении, а не использовать готовые решения от MERTECH.
4.1 Получить список торговых объектов¶
URL интерфейса: {host}/api/monitoring/stores
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"name": "",
"address": "",
"region": "",
"type": "",
"store_id": "",
"offset": 1,
"limit": 0
}
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "29a7a979-6a26-4d07-9a02-cd9e18edbea9",
"name": "JUKK",
"address": "ул. Весенняя, 54",
"region": {
"id": "5c2ad987-5402-4609-9fc3-bb09ead24187",
"name": "Астраханская"
},
"type": {
"id": "13dd7f94-5dc3-4d60-a6b9-4f1c25000f26",
"name": "супермаркет"
}
}
],
"offset": 1,
"limit": 10
}
}
4.2 Получить атрибуты устройства¶
URL интерфейса: {host}/api/monitoring/devices/{device_id}/attributes
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"key": "",
"value": "",
"offset": 1,
"limit": 0
}
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"key": "password",
"value": "1234"
}
],
"offset": 1,
"limit": 10
}
}
4.3 Получить список всех моделей¶
URL интерфейса: {host}/api/monitoring/devices/models
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"name": "",
"type": "",
"offset": 1,
"limit": 0
}
type — тип устройства:
scales — весы;
recognition_module — модули распознавания.
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "1e2c0f77-3c0e-4c1a-8c3a-c7270642ce12",
"name": "AW-100 (AgroWeigh 100)",
"type": "scales"
}
],
"offset": 1,
"limit": 10
}
}
4.4 Получить типы торговых объектов¶
URL интерфейса: {host}/api/monitoring/stores/types
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"name": "",
"offset": 1,
"limit": 0
}
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "e762cd9b-adc2-46e1-9f91-94eec0237843",
"name": "Супермаркет"
}
],
"offset": 1,
"limit": 10
}
}
4.5 Получить список отделов торговых объектов¶
URL интерфейса: {host}/api/monitoring/stores/departments
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"name": "",
"offset": 1,
"limit": 0
}
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "e762cd9b-adc2-46e1-9f91-94eec0237843",
"name": "Супермаркет"
}
],
"offset": 1,
"limit": 10
}
}
4.6 Получить список регионов¶
URL интерфейса: {host}/api/monitoring/stores/regions
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"name": "",
"offset": 1,
"limit": 0
}
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "e762cd9b-adc2-46e1-9f91-94eec0237843",
"name": "Липецк"
}
],
"offset": 1,
"limit": 10
}
}
4.7 Создать модель устройства¶
URL интерфейса: {host}/api/monitoring/devices/models
Метод запроса: POST
Входные данные
{
"name": "test1",
"type": "recognition_module"
}
type — тип устройства:
scales — весы;
recognition_module — модули распознавания.
Выходные данные
{
"code": 0,
"data": {
"status": "success",
"data": {
"id": "fcb4a678-1f30-470c-a7e7-08a68574c4cd"
},
"code": "model_created",
"description": "Device model has been successfully created."
}
}
4.8 Получить список устройств¶
URL интерфейса: {host}/api/monitoring/devices
Метод запроса: GET
Дополнительные параметры для фильтров и пагинации
{
"search": [""],
"serial_number": "",
"model": "",
"type": "",
"region": "",
"store": "",
"address": "",
"department": "",
"offset": 1,
"limit": 0
}
model - type — тип устройства:
scales — весы;
recognition_module — модули распознавания.
Выходные данные
{
"code": 0,
"data": {
"total": 1,
"data": [
{
"id": "cb0802c4-6dd6-4a24-a2fc-b65076363db0",
"serial_number": "WS-2504-0002",
"model": {
"id": "1e2c0f77-3c0e-4c1a-8c3a-c7270642ce12",
"name": "AW-100 (AgroWeigh 100)",
"type": "scales"
},
"store": {
"id": "b00a6549-afc4-48a6-9978-89c02efc63e8",
"name": "URBN",
"address": "ул. Дзержинского, 39",
"region": {
"id": "aeadbdcd-695f-498b-b8e6-20737e5a4692",
"name": "Кировская"
},
"type": {
"id": "2bad3a7e-1a1c-4343-a2f8-4f17dab1a5d6",
"name": "у дома"
}
}
}
],
"offset": 1,
"limit": 10
}
}
4.9 Получить информацию об устройстве¶
URL интерфейса: {host}/api/monitoring/devices/{device_id}
Метод запроса: GET
model - type — тип устройства:
scales — весы;
recognition_module — модули распознавания.
Выходные данные
{
"code": 0,
"data": {
"id": "cb0802c4-6dd6-4a24-a2fc-b65076363db0",
"serial_number": "WS-2504-0002",
"model": {
"id": "1e2c0f77-3c0e-4c1a-8c3a-c7270642ce12",
"name": "AW-100 (AgroWeigh 100)",
"type": "scales"
},
"store": {
"id": "b00a6549-afc4-48a6-9978-89c02efc63e8",
"name": "URBN",
"address": "ул. Дзержинского, 39",
"region": {
"id": "aeadbdcd-695f-498b-b8e6-20737e5a4692",
"name": "Кировская"
},
"type": {
"id": "2bad3a7e-1a1c-4343-a2f8-4f17dab1a5d6",
"name": "у дома"
}
}
}
}
4.10 Создать виртуальное устройство¶
URL интерфейса: {host}/api/monitoring/devices
Метод запроса: POST
Входные данные
{
"serial_number": "WS12345",
"model_id": "dfce48a5-6722-4aeb-a953-97a83d72d5ed",
"store_id": "87eaac77-d379-48f0-8c74-6cd03499b3ec",
"department_id": null,
"prototype": false
}
Выходные данные
{
"code": 0,
"data": {
"status": "success",
"data": {
"id": "b10c79e3-7298-4d3a-9b4a-4baebfa1e29b"
},
"code": "device_created",
"description": "Device has been successfully created."
}
}
4.11 Получить значения по списку атрибутов для устройств¶
URL интерфейса: {host}/api/monitoring/devices/data
Метод запроса: POST
Входные данные
{
"device_ids": ["e1514ae7-8c33-47bf-9f2d-a7f95aee3926"],
"attribute_keys": ["Password"],
"telemetry_keys": [],
"calculated_keys": ["top_1", "top_5"]
}
При передаче пустого массива attribute_keys, telemetry_keys, calculated_keys придут данные по всему списку соответствующих данных. Чтобы данные не приходили, не передавайте массив.
Выходные данные
{
"code": 0,
"data": {
"e1514ae7-8c33-47bf-9f2d-a7f95aee3926": {
"attributes": {
"Password": "1234"
},
"telemetry": {
"test15": "test str",
"test4": true
},
"calculated": {
"top_1": 71.43,
"top_5": 85.71
}
}
}
}
4.12 Обновить данные устройства¶
URL интерфейса: {host}/api/monitoring/devices/{device_id}
Метод запроса: PATCH
Входные данные
{
"serial_number": "WS12345",
"model_id": "dfce48a5-6722-4aeb-a953-97a83d72d5ed",
"store_id": "87eaac77-d379-48f0-8c74-6cd03499b3ec",
"department_id": null,
"prototype": false
}
Выходные данные
{
"code": 0,
"data": {
"status": "success",
"data": {
"id": "c8043aa0-9336-4a5e-bae1-31d8cbbaba8f"
},
"code": "device_updated",
"description": "Device has been successfully updated."
}
}
4.13 Удалить устройство¶
URL интерфейса: {host}/api/monitoring/devices/{device_id}
Метод запроса: DELETE
Выходные данные
{
"code": 0,
"data": {
"status": "success",
"code": "device_deleted",
"data": {
"id": "a4ec588c-f368-40ce-8f8a-6f9ca0104717"
},
"description": "Device has been successfully deleted."
}
}