Прошу реализовать в REST API методы получения списков объектов учёта и данные группы, к которой принадлежит объект учёта. В устаревшей web-службе есть метод GetNodeListExtended, возвращающий список объектов учета с расширенной информацией, доступный для учетной записи. С флагом Customer я мог получить данные группы, к которой относится данный объект. Это позволяло мне разграничить доступ разным пользователям, которым были доступны только определённые группы объектов учёта в интерфейсе моего приложения.
Но ведь сервер ЛЭРС УЧЁТ контролирует какие объекты из каких групп доступны пользователям. Почему не использовать встроенную проверку и не делать этого в коде?
Да, и я этим активно пользуюсь, так как пользователи в моём приложении авторизуются учёткой ЛЭРС. Объекты учёта распределены по группам. Мне эти группы необходимо показывать. Цепочка выглядит примерно так: Группа объектов учёта → Объекты учёта → Точки учёта. Сейчас в текущем методе /api/v1/Core/MeasurePoints я вижу только ID и имя объекта учёта, до групп объектов добраться не могу. Ну, и скорость подгрузки отдельного списка групп или объектов учёта значительно выше, нежели запросить все точки учёта, откуда получать информацию для иерархического списка.
Может, вам больше подойдут методы для запроса списка объектов/точек по группе? Тогда вы сможете после выбора группы сразу запросить список объектов/точек, которые в неё входят.
У нас есть внутренние api, которые позволяют это сделать. В версии 3.36 мы можем открыть их в публичный доступ.
Запросы будут вида
/api/v1/MeasurePoints?nodeGroupId=ИДЕНТИФИКАТОР_ГРУППЫ
и
/api/v1/Nodes/NodeGroup?nodeGroupId=ИДЕНТИФИКАТОР_ГРУППЫ
Подойдёт ли такой вариант?
Отличный вариант!
Полагаю, что в объекте будет поле с именем группы, а дальше построить иерархическое дерево “Группы → Объекты → Точки” уже дело техники. Ну, и одним запросом типа /api/v1/Nodes/NodeGroup получить весь список доступных групп было бы вообще отлично.
Да, вам потребуется ещё и список групп, который так же можно будет получить через REST.
Этот API, помимо списка групп, вернёт ещё и всех членов каждой группы. Думаю, это поможет вам реализовать вашу задачу.
В версии 3.36 мы добавим маршруты:
/api/v1/Core/NodeGroups
Вернёт список групп, и идентификаторы объектов, входящих в каждую группу.
/api/v1/Core/Nodes
Позволит запросить список объектов с возможностью отфильтровать их по группе. Для этого в запрос нужно передать параметр nodeGroupId=ИДЕНТИФИКАТОР_ГРУППЫ
Например:
api/v1/Core/Nodes?nodeGroupId=ИД_ГРУППЫ
Такой же запрос доступен для точек учёта
/api/v1/Core/MeasurePoints?nodeGroupId=ИД_ГРУППЫ
Спасибо за продуктивную обратную связь! Будем ждать обновления.
Версия 3.36.0. доступна для скачивания.