kirovtek
(Сергей Гавриленко)
09.Февраль.2023 06:06:22
1
Здравствуйте!
В продолжение темы https://forum.lers.ru/t/polzovatelskie-atributy-cherez-rest-api/15792 :
При наличии у точки учёта нескольких пользовательских атрибутов (допустим myAttribute, Attribute1, Attribute2), запрос по REST API на изменение одного из них по типу
PUT/api/v1/Core/MeasurePoints/ID/Attributes
[
{
“Code”: “myAttribute”,
“Value”: “8.567”
}
]
правильно применяет адресный и перезатирает все остальные. Т.е. Attribute1 и Attribute2 станут пустыми, даже если имели данные до запроса. На мой взгляд, это ошибочное поведение.
achi
(Антон Чичков)
09.Февраль.2023 07:11:35
2
Вообще, так и планировалось, задавать нужно все значения.
kirovtek
(Сергей Гавриленко)
09.Февраль.2023 08:09:51
3
Изначально подумал также, но смотрите, есть аналогичный запрос на пополнение справочника среднесуточных температур:
PUT/api/v1/Data/Territories/ID/Weather
[
{
“date”:“2022-12-22T00:00:00”,
“value”:10.0
}
]
и он позволяет вносить изменения адресно, не уничтожая остальные данные. Т.е. при похожих подходах имеем разное поведение, это путает.
7in
09.Февраль.2023 08:31:44
4
Может быть нужно что-то вроде подобного функционала ?
achi
(Антон Чичков)
09.Февраль.2023 09:10:28
5
Ну справочник всё-таки условно бесконечный, а количество атрибутов точек строго определено.
Patch применяется для редактирования части полей одной сущности, а тут их несколько (атрибуты).
kirovtek
(Сергей Гавриленко)
09.Февраль.2023 09:19:47
6
В общем, ответ на свой вопрос я получил. Это не ошибка, так и было задумано. Что ж, будем работать с тем что есть.
Тему можно закрыть, спасибо.