Поиск и получение объектов из Системы#

Для поиска объектов в Системе используется метод 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"
}
}]