====== Описание формата редактирования объектов в списке ======
==== Navigation ====
* [[ru:first|Главная]]
* [[ru:airlay:glossary|Glossary]]
* [[ru:airlay:examples|Примеры данных]]
==== Общая информация ====
Для массового редактирования объектов в наборе данных необходимо создать поиск по набору данных. В настройках поиска необходимо указать ключевые поля, по которым будет осуществляться поиск по объектам. К примеру это будут идентификаторы, имена объектов, различные коды.
После этого необходимо создать модуль администрирования. Необходимо указать в нём поиск и список полей, которые можно посмотреть в списке.
==== Получение списка объектов ====
Для получения данных можно воспользоваться данным API.
https://airlay.ru/api/v4/user/performUserSearch?type=user&searchId=62a884ed984cd32eaa3255fb&queries=%5B%2264661697%22%5D&objectType=Main&filter= ( (%7B%7Bvoltage%7D%7D=0.4%7C%7B%7Bvoltage%7D%7D=%220.4%22 ) )&sortField=_id&sortOrder=desc&skip=0&limit=10
Во первых вам понадобиться идентификатор поиска, его можно получить в администрировании просто кликнув на идентификатор возле поиска. Его указываем в поле searchId = 62a884ed984cd32eaa3255fb. Поле type = user статичное, оно означает, что используем пользовательский поиск. objectType = Main тоже статическое поле. В поле queries = можно указать значение, по которому можно выполнить поиск объектов в БД.
''filter = ( ( { { voltage } } = 0.4 | { { voltage } } = "0.4" ) )'' в фильтр через И и ИЛИ можно указать различные поля для фильтрации. ''sortField = _id'' атрибут отвечает за сортировку данных, мы можем по ключевому полю отсортировать объекты сюда указывается поле. sortOrder = desc атрибут отвечает за порядок сортировки может быть asc и desc. ''skip=0 и limit=10'' позволяет выгружать данные порционно, рекомендуемый объём это 1000 объектов. В целом система успешно выгружает и большие пакеты, но есть ограничение в оперативной памяти в 2GIG при котором система вернёт ошибку, если не получилось получить данные. Когда система вернёт ошибку 400, то объекты закончились или их нет по заданным фильтрам.
==== Добавление списка объектов ====
Чтобы добавить список объектов необходимо отправить POST запрос.
https://airlay.ru/api/v3/dataset/editor
В POST запрос в FORM DATA нужно передать два поля
Идентификатор набора данных dataSetId 62a811a3e143c06e854cda72
Коммит на изменение commit
[
{
"type":"createRelation",
"id":-1,
"geometryType":"Point",
"members":[],
"properties":
{
"Date":null,
"updateDate":1780913201
}
},
{
"type":"createRelation",
"id":-2,
"geometryType":"Point",
"members":[],
"properties":
{
"Date":null,
"updateDate":1780913201
}
}
]
В коммит нужно передать массив изменений. Первое поле тип с операцией создать relation. Второе поле создать идентификатор для объекта указываются поля -1, -2, -3. В теории можно указать сразу связи между объектами. Параметр -1 и меньше означает, что система создаст идентификатор и проставит объекту и укажет для него связи из коммита. Второе поле geometryType указываем тип объекта. members массив геометрических ссылок на объекты. "properties" поля для объекта туда можно сложить атрибуты. В примере выше мы создали 2 точки с 2 атрибутами и уникальными идентификаторами.
==== Обновление списка объектов ====
Чтобы обновить список объектов необходимо отправить POST запрос.
https://airlay.ru/api/v3/dataset/editor
В POST запрос в FORM DATA нужно передать два поля
Идентификатор набора данных dataSetId 62a811a3e143c06e854cda72
Коммит на изменение commit
[
{
"type":"updateRelationProperties",
"id":1,
"geometryType":"Point",
"members":[],
"properties":
{
"Date":null,
"updateDate":1780913201,
"newField":"new"
}
},
{
"type":"createRelation",
"id":2,
"geometryType":"Point",
"members":[],
"properties":
{
"Date":null,
"updateDate":1780913201,
"newField":"new"
}
}
]
В коммит нужно передать массив изменений. Первое поле тип с операцией создать updateRelationProperties. Мы после создания получаем список идентификаторов или через получения списка объектов мы меняем данные объекты. В текущем примере мы меняем новые точки с идентификаторами 1 и 2 и добавляем им новое поле с новым атрибутом в поле "properties"
==== Удалить списка объектов ====
Чтобы удалить список объектов необходимо отправить POST запрос.
https://airlay.ru/api/v3/dataset/delete
В POST запрос в FORM DATA нужно передать два поля
Идентификатор набора данных dataSetId 62a811a3e143c06e854cda72
Список уникальных идентификаторов ids ["1", "2"]
В примере выше мы удаляем 2 точки с идентификаторами 1 и 2.