4. Работа с сервером мониторинга --------------------------------- **Сервер мониторинга MERTECH** — платформа для управления инфраструктурой, которая помогает контролировать работу большого числа оборудования (весов, модулей распознавания): ведет сбор статистики, мониторит выполнение различных задач, например, распределение мета-моделей (данных о распознавании товаров). Модули распознавания подключаются к серверу мониторинга через агента MERTECH Vision AI. Для каждого устройства — свой агент. В разделе представлены эндпоинты для работы с сервером. Всю логику авторизации в системе сервис берет на себя и возвращает полноценный ответ от системы. Описанные методы являются дополнением к работе сервера мониторинга, чтобы реализовать часть функционала по объединению физического и виртуального устройств в клиентском приложении, а не использовать готовые решения от MERTECH. 4.1 Получить список торговых объектов ====================================== **URL интерфейса:** {host}/api/monitoring/stores **Метод запроса:** GET **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "name": "", "address": "", "region": "", "type": "", "store_id": "", "offset": 1, "limit": 0 } **Выходные данные** .. code:: { "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 **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "key": "", "value": "", "offset": 1, "limit": 0 } **Выходные данные** .. code:: { "code": 0, "data": { "total": 1, "data": [ { "key": "password", "value": "1234" } ], "offset": 1, "limit": 10 } } 4.3 Получить список всех моделей ================================= **URL интерфейса:** {host}/api/monitoring/devices/models **Метод запроса:** GET **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "name": "", "type": "", "offset": 1, "limit": 0 } *type* — тип устройства: - *scales* — весы; - *recognition_module* — модули распознавания. **Выходные данные** .. code:: { "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 **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "name": "", "offset": 1, "limit": 0 } **Выходные данные** .. code:: { "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 **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "name": "", "offset": 1, "limit": 0 } **Выходные данные** .. code:: { "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 **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "name": "", "offset": 1, "limit": 0 } **Выходные данные** .. code:: { "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 **Входные данные** .. code:: { "name": "test1", "type": "recognition_module" } *type* — тип устройства: - *scales* — весы; - *recognition_module* — модули распознавания. **Выходные данные** .. code:: { "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 **Дополнительные параметры для фильтров и пагинации** .. code:: { "search": [""], "serial_number": "", "model": "", "type": "", "region": "", "store": "", "address": "", "department": "", "offset": 1, "limit": 0 } *model - type* — тип устройства: - *scales* — весы; - *recognition_module* — модули распознавания. **Выходные данные** .. code:: { "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:: { "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 **Входные данные** .. code:: { "serial_number": "WS12345", "model_id": "dfce48a5-6722-4aeb-a953-97a83d72d5ed", "store_id": "87eaac77-d379-48f0-8c74-6cd03499b3ec", "department_id": null, "prototype": false } **Выходные данные** .. code:: { "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 **Входные данные** .. code:: { "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:: { "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 **Входные данные** .. code:: { "serial_number": "WS12345", "model_id": "dfce48a5-6722-4aeb-a953-97a83d72d5ed", "store_id": "87eaac77-d379-48f0-8c74-6cd03499b3ec", "department_id": null, "prototype": false } **Выходные данные** .. code:: { "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:: { "code": 0, "data": { "status": "success", "code": "device_deleted", "data": { "id": "a4ec588c-f368-40ce-8f8a-6f9ca0104717" }, "description": "Device has been successfully deleted." } }