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."
  }
}