Поиск и получение объектов из Системы#
Для поиска объектов в Системе используется метод entities/{schemeId}/{typeAlias} путем выполнения HTTP-POST запроса. В заголовке необходимо указывать Content-type: “application/json”.
Примечание
Запросы к API можно генерировать с помощью утилиты Postman.
typeAlias – псевдоним объекта Geometa, по которому можно выполнить поиск. Перечень псевдонимов объектов, доступный для поиска, задается правами для клиента на этапе его регистрации в API (см. Как добавить нового клиента). Получить данный перечень можно методом rights.
Поиск выполняется по некоторым заданным условиям, которые могут использоваться для обновления, создания объекта или установки связи с другим объектом.
В тело запроса добавьте критерии поиска объектов Системы в формате Json. Формат критериев должен содержать в себе корневой элемент {«operator»: «operator», «criterions»:[]}.
Где тег "operator"
может принимать значения «and» или «or». Если в запросе приведен только один блок критериев, то значение "operator"
не имеет значения и может быть задано любым.
В массив "criterions"
добавляются условия поиска в формате:
{
"operator": "operator",
"property":{"alias":"FieldAlias","type":"field"},
"value":"2018-04-25T00:00:00"
}
Тег "operator"
может принимать значения: «like», «notlike», «gt» (>), «lt» (<), «gte» (>=), «lte» (<=), «eq», «noteq», «empty», «notempty», «in», «notin». Если нужно использовать несколько вложенных критериев, необходимо добавить их через запятую. Так можно делать вложенные подкритерии:
{"operator":"and","criterions":[{"operator":"or","criterions":[{"operator":"and","criterions":[]}]}]}.
В параметре "alias"
указывается псевдоним поля, по которому выполняется поиск и к которому указываются условия в блоке "criterions"
.
В параметре "type"
всегда указывается константа «field».
Пример cUrl запроса:
curl -X POST HTTP://{APIURL}/api/v1/entities/{schemeId}/{typeAlias} -H 'content-type: application/json'
Пример тела запроса на поиск объекта с определенным ключом:
{
"operator":"and",
"criterions":[
{
"operator":"eq",
"property":{
"alias":"Key",
"type":"field"
},
"value":"1000020012012043"
}
]
}
Пример тела запроса на поиск объектов в Системе за указанный период времени, включая верхнюю и нижнюю границу времени:
{
"operator":"and",
"criterions":[
{
"operator":"gte",
"property":{
"alias":"DateApplication",
"type":"field"
},
"value":"2020-10-01T00:00:00"
},
{
"operator":"lte",
"property":{
"alias":"DateApplication",
"type":"field"
},
"value":"2020-10-02T00:00:00"
}
]
}
Если не требуется устанавливать критерии поиска объекта, то параметр "criterions"
может быть не задан.
Например, тело запроса для получения всех значений Системы определённого типа будет выглядеть следующим образом:
{
"operator":"and",
"criterions":[]
}
В ответ будет возвращаться массив данных (поля объекта, ключи и типы связанных объектов, описание геометрии в формате GeoJson и наименование системы координат, если был запрошен геометрический объект), найденных в Системе по заданному условию в следующем формате:
[{
"EntityAlias": "EntityAlias",
"EntityKey": EntityKey,
"Fields": {
"Project": "Name of prpject",
"SomeFieldA": "SomeValueA",
"SomeFieldB": "SomeValueB",
"Geometry": {
"Geojson": {
"type": "Polygon",
"coordinates": [
[
[
101818.45,
635684.6
],
[
101881.62,
635741.48
],
[
101968.61,
635644.87
],
[
101905.44,
635588
],
[
101818.45,
635684.6
]
]
]
},
"Srs": "SomeSrs"
},
"Project": "SomeProject"
}
}]