Руководство разработчика REST

WMS - запрос легенды слоя

GET /service/wms

Структура запроса:

GET /service/wms?request=GetLegendGraphic&style=vamin_kioski_p_vw_style_21_03_2011_19_20_16&layer=kziokzn:vamin_kioski_p_vw&format=image/png&token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • request — название запроса GetLegendGraphic
  • layer — английское название слоя
  • style — название стиля слоя
  • format — формат, в котором вернется легенда
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: зависит от параметра format

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Статус: 403 - нет доступа к слою

Формат: text/plain

Содержит описание ошибки

Получение списка слоев по английскому названию

Ответ

Статус: 200 - успешное выполнение

Формат: json

{ 
"layers": [{массив слоев
"order": 9,порядковый номер в списке, целое число
"layer": {объект слоя
"id": 135,id слоя, целое число
"name": "testlayerpoint",название слоя, строка
"info": {информация по слою, объект
"id": 135,id слоя, целое число
"typeName": "test:testlayerpoint1410257743497_vw",английское название слоя, строка
"style": "point",название стиля, строка
"service": "WFS",тип сервиса, WMS/WFS
"poly": false,является ли полигоном, логическое
"requestUrl": "/service/wfs",url для запроса, строка
"tileSize": 256,размер тайла, целое число
"geomField": "the_geom",название поля с геометрией, строка
"pkField": "gid" 
}, 
"isEditable": true,является ли редактируемым, логическое
"isStyleEditable": true,можно ли редактировать стиль, логическое
"owner": 6,id создателя слоя, целое число
"clusterId": 1,id кластера или null, целое число
"layerType": "vector",тип слоя vector или raster, строка
"geometryType": "point",тип геометрии, строка
"access": {права доступа
"read": true,права на чтение
"edit": true,права на редактирование структуры
"importObjects": true,возможность на импорт объектов
"serviceObjects": false,используется ли в заданиях
"export": true,возможность экспортировать
"writeCreate": false,возможность создавать объекты
"writeUpdate": false,возможность редактировать объекты
"writeDelete": falseвозможность удалять объекты
}, 
"system": false,является ли слой системным, логическое
"systemCode": null,код для системного слоя, строка
"fields": [{объект полей
"id": 250,id поля, целое число
"name": "Field",английское название поля, строка
"rusName": "Поле",русское название поля , строка
"order": 1,порядок следования в списке, целое число
"title": false,является ли заголовком, логическое
"view": true,показывать ли поле, логическое
"forUpsert": true,показывать ли поле при создании/редактировании объекта, логическое
"forSearch": true,будет ли использоваться поле для поиска по объектам слоя, логическое
"type": "string",тип, строка
"htmlEscape": true,экранировать ли html, логическое
"popupView": false,показывать ли во всплывающем окошке, логическое
"reference": falseявляется ли ссылкой на таблицу, логическое
}], 
"titleFields": {заголовок слоя
"format": "{0}",формат заголовка, строка
"fields": ["name"]атрибуты, которые входят в заголовок, массив строк
}, 
"subTitleFields": {подзаголовок слоя
"format": "{0}",формат заголовка, строка
"fields": ["category"]атрибуты, которые входят в заголовок, массив строк
} 
}, 
"groupId": 12id группы
}] 
} 

Информация по слою, исключая данные о группе слоя

GET /layers/{layerId}/info

Структура запроса:

GET /layers/132/info?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • layerId — id слоя
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

{ 
"layer": {объект слоя
"id": 29,id слоя, целое число
"name": "Сервисные объекты 1",русское название слоя, строка
"isEditable": true,является ли редактируемым, логическое
"isStyleEditable": true,можно ли редактировать стиль, логическое
"owner": 6,id создателя слоя, целое число
"clusterId": 1,id кластера или null, целое число
"system": false,является ли слой системным, логическое
"systemCode": null,код для системного слоя, строка
"info": {информация по слою, объект
"id": 29,id слоя, целое число
"typeName": "workspace:servisncye_obcaektcy_1_vw",английское название слоя, строка
"style": "servisncye_obcaektcy_1_1622626848248_style",название стиля, строка
"service": "WMS",тип сервиса, WMS/WFS
"poly": false,является ли полигоном, логическое
"requestUrl": "/service/wms",url для запроса, строка
"tileSize": 256,размер тайла, целое число
"geomField": "the_geom",название поля с геометрией, строка
"pkField": "fid",поле для первичного ключа, строка
"eisInfo": {данные о наличии медиа информации, объект
"hasEis": true,есть ли медиа информация, логическое
"pkField": "fid", 
"hasType_photo": true,есть ли фотографии, логическое
"edit_photo": true,можно ли редактировать фотографии, логическое
"hasType_file": true,есть ли файлы, логическое
"edit_file": trueможно ли редактировать файлы, логическое
} 
}, 
"fields": [{массив полей
"id": 94,id поля, целое число
"name": "naimenovan",английское название поля, строка
"rusName": "Наименование",русское название поля, строка
"order": 1,порядок следования в списке, целое число
"title": true,является ли заголовком, логическое
"view": true,показывать ли поле, логическое
"forUpsert": true,показывать ли поле при создании/редактировании объекта, логическое
"forSearch": true,будет ли использоваться поле для поиска по объектам слоя, логическое
"type": "String",тип поля, строка
"htmlEscape": true,экранировать ли html, логическое
"popupView": false,показывать ли во всплывающем окошке, логическое
"reference": falseявляется ли ссылкой на таблицу, логическое
},...], 
"titleFields": {заголовок слоя
"format": "{0}",формат заголовка, строка
"fields": ["name"]атрибуты, которые входят в заголовок, массив строк
}, 
"subTitleFields": {подзаголовок слоя
"format": "{0}",формат заголовка, строка
"fields": ["category"]атрибуты, которые входят в заголовок, массив строк
}, 
"customFields": null,дополнительные поля, строка
"geometryType": "multipoint",тип геометрии, строка
"dataStoreName": "system_store",название хранилища данных, строка
"isRaster": false,является ли космоснимком, логическое
"layerType": "vector",тип слоя, строка
"access": {права доступа
"read": true,права на чтение
"edit": true,права на редактирование структуры
"importObjects": true,возможность на импорт объектов
"serviceObjects": false,используется ли в заданиях
"export": true,возможность экспортировать
"writeCreate": false,возможность создавать объекты
"writeUpdate": false,возможность редактировать объекты
"writeDelete": falseвозможность удалять объекты
}, 
"cluster": nullкластер, строка
} 
} 

Статус: 403 - у вас нет доступа к данному слою

Формат: text/plain

Содержит описание ошибки

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Список групп, включая полную информацию по принадлежащим им слоям

GET /groups/withLayers

Структура запроса:

GET /groups/withLayers?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания"
                "isEditable": false,
                "isStyleEditable": false,
                "owner": 6,
                "clusterId": null,
                "system": false,
                "systemCode": null,
                "view": true,
                "layerType": "vector",
                "geometryType": "point",
                "fields": [{
                    "id": 56,
                    "name": "issue_link",
                    "rusName": "ID",
                    "order": 1,
                    "title": false,
                    "view": true,
                    "forUpsert": true,
                    "forSearch": true,
                    "type": "int",
                    "htmlEscape": false,
                    "popupView": false,
                    "reference": false
                }, ...],
                "titleFields": {
                    "format": "{0}",
                    "fields": ["name"]
                },
                "subTitleFields": {
                    "format": "{0}",
                    "fields": ["category"]
                },
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ]
    }, ...],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}

Поиск списка групп, включая полную информацию по принадлежащим им слоям

Ответ

Статус: 200 - успешное выполнение

Формат: json

{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания"
                "isEditable": false,
                "isStyleEditable": false,
                "owner": 6,
                "clusterId": null,
                "system": false,
                "systemCode": null,
                "view": true,
                "layerType": "vector",
                "geometryType": "point",
                "fields": [{
                    "id": 56,
                    "name": "issue_link",
                    "rusName": "ID",
                    "order": 1,
                    "title": false,
                    "view": true,
                    "forUpsert": true,
                    "forSearch": true,
                    "type": "int",
                    "htmlEscape": false,
                    "popupView": false,
                    "reference": false
                }, ...],
                "titleFields": {
                    "format": "{0}",
                    "fields": ["name"]
                },
                "subTitleFields": {
                    "format": "{0}",
                    "fields": ["category"]
                },
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ]
    }],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}

Список групп, включая краткую информацию по принадлежащим им слоям

GET /groups/shortdata/withLayers

Структура запроса:

GET /groups/shortdata/withLayers?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

{
    "groups": [{
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
                "id": 2,
                "name": "Новые задания",
                "owner": 6,
                "clusterId": null,
                "system": false,
                "systemCode": null,
                "view": true,
                "info": {
                    "id": 2,
                    "typeName": "workspace:organization_layer_new_issues",
                    "style": "cku_departments_news_incident_style",
                    "service": "WMS",
                    "poly": false,
                    "requestUrl": "/service/wms",
                    "tileSize": 256,
                    "geomField": "the_geom",
                    "pkField": "gid"
                }
            },
            "order": 2,
            "groupId": 1
        }, ... ]
    }, ...],
    "mapExtent": {
        "id": 123,
        "name": "default",
        "extent": {
            "minX": 37.1722412109375,
            "minY": 55.64272408255231,
            "maxX": 38.13354492187501,
            "maxY": 55.93612557332707,
            "projection": "EPSG:4326"
        },
        "main": true
    }
}

Группа слоев, включая полную информацию по принадлежащим ей слоям

GET /groups/{groupId}/withLayers

Структура запроса:

GET /groups/32/withLayers?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • groupId — id группы
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

{
    "group": {
        "id": 1,
        "name": "Задания",
        "order": 3,
        "system": false,
        "groupLayers": [{
            "layer": {
              "id": 2,
              "name": "Новые задания"
              "isEditable": false,
              "isStyleEditable": false,
              "owner": 6,
              "clusterId": null,
              "system": false,
              "systemCode": null,
              "view": true,
              "layerType": "vector",
              "geometryType": "point",
              "fields": [{
                  "id": 56,
                  "name": "issue_link",
                  "rusName": "ID",
                  "order": 1,
                  "title": false,
                  "view": true,
                  "forUpsert": true,
                  "forSearch": true,
                  "type": "int",
                  "htmlEscape": false,
                  "popupView": false,
                  "reference": false
              }, ...],
              "titleFields": {
                  "format": "{0}",
                  "fields": ["name"]
              },
              "subTitleFields": {
                  "format": "{0}",
                  "fields": ["category"]
              },
              "info": {
                  "id": 2,
                  "typeName": "workspace:organization_layer_new_issues",
                  "style": "cku_departments_news_incident_style",
                  "service": "WMS",
                  "poly": false,
                  "requestUrl": "/service/wms",
                  "tileSize": 256,
                  "geomField": "the_geom",
                  "pkField": "gid"
              }
            },
            "order": 2,
            "groupId": 1
        }, ... ]
    }
}

Формат: text/plain

Содержит описание ошибки

Отображение прикрепленной фотографии с масштабированием по высоте

GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}

Структура запроса:

GET /layers/eis/198/141/photo/247/100?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • layerId — id слоя
  • objectId — первичный ключ объекта
  • photoId — первичный ключ фотографии
  • height — высота для масштабирования
  • token — ключ доступа

Отображение прикрепленной фотографии с масштабированием по высоте и ширине

GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}/{width}

Структура запроса:

GET /layers/eis/198/141/photo/247/100/150?token=b3f0a9d48165be1c95bd028d3f04094g&crop=true

Параметры:

  • layerId — id слоя
  • objectId — первичный ключ объекта
  • photoId — первичный ключ фотографии
  • height — высота для масштабирования
  • width — ширина для масштабирования
  • token — ключ доступа
  • crop — обрезать фотографию по размерам (необязательный)

Ответ

Статус: 200 - успешное выполнение

Формат: image/jpeg и т.д.

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Отображение прикрепленного файла

GET /layers/eis/{layerId}/{objectId}/{fileType}/{fileId}

Структура запроса:

GET /layers/eis/198/141/file/247?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • layerId — id слоя
  • objectId — первичный ключ объекта
  • fileType — тип файла: photo, video, audio, file
  • fileId — первичный ключ файла
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: зависит от типа отдаваемого файла

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Отображение прикрепленной фотографии с масштабированием по высоте

GET /datatables/eis/{tableId}/{objectId}/photo/{photoId}/{height}

Структура запроса:

GET /datatables/eis/198/141/photo/247/100?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • tableId — id слоя
  • objectId — первичный ключ объекта
  • photoId — первичный ключ фотографии
  • height — высота для масштабирования
  • token — ключ доступа

Отображение прикрепленной фотографии с масштабированием по высоте и ширине

GET /datatables/eis/{tableId}/{objectId}/photo/{photoId}/{height}/{width}

Структура запроса:

GET /datatables/eis/198/141/photo/247/100/150?token=b3f0a9d48165be1c95bd028d3f04094g&crop=true

Параметры:

  • tableId — id слоя
  • objectId — первичный ключ объекта
  • photoId — первичный ключ фотографии
  • height — высота для масштабирования
  • width — ширина для масштабирования
  • token — ключ доступа
  • crop — обрезать фотографию по размерам (необязательный)

Ответ

Статус: 200 - успешное выполнение

Формат: image/jpeg и т.д.

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Отображение прикрепленного файла

GET /datatables/eis/{tableId}/{objectId}/{fileType}/{fileId}

Структура запроса:

GET /datatables/eis/198/141/file/247?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • tableId — id таблицы
  • objectId — первичный ключ объекта
  • fileType — тип файла: photo, video, audio, file
  • fileId — первичный ключ файла
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: зависит от типа отдаваемого файла

Статус: 404 - слой не найден в системе

Формат: text/plain

Содержит описание ошибки

Поиск по адресу (GET запрос)

GET /geocoding

Структура запроса:

GET /geocoding?query=Казань&layersId=12,23,345,56&bbox=46,55,48,57&onlylayers=true&token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • query — строка запроса
  • layersId — id слоев, где также надо осуществлять поиск, через запятую
  • bbox — область запроса
  • onlylayers — есть true, то осуществлять поиск только по слоям
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

[ 
{ 
"layer": "Улицы",русское название, строка
"wmsName": "world:k2_ulitsy_l",английское название, строка
"layerId": null,null - слой, для поиска по умолчанию, иначе id из массива
"items": [{массив найденных объектов
"pkid": 162815,первичный ключ, строка
"label": "Казань, городской округ Казань, Татарстан",заголовок, строка
"zoom": 16,зум для отображения, целое число
"point": {точка, объект
"lon": 49.28956419647526,долгота точки, число с плавающей точкой
"lat": 55.75372719479096широта точки, число с плавающей точкой
}, 
"address": {расшифровка адреса, объект
"city": "Казань", 
"county": "городской округ Казань", 
"state": "Татарстан", 
"country": "Россия", 
"country_code": "ru" 
}, 
"sys_clr_id": null,системное поле id cluster, если присутствует в атрибутах слоя
"sys_org_id": nullсистемное поле id организации, если присутствует в атрибутах слоя
}] 
}, ... 
] 

Поиск по координатам (POST запрос)

POST /geocoding

Структура запроса:

POST /geocoding?token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • token — ключ доступа

Пример запроса:

{ 
"layersId": ["10","12","26"],массив id слоев, где также надо осуществлять поиск
"point": {точка на карты, объект
"lon": 50.69091796875,долгота точки, вещественное число
"lat": 55.33851784425634широта точки, вещественное число
}, 
"zoom": 14,уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса.
"onlylayers": trueесть true, то осуществлять поиск только по слоям
} 

Ответ

Статус: 200 - успешное выполнение

Формат: json

[ 
{ 
"layer": "Улицы",русское название, строка
"wmsName": "world:k2_ulitsy_l",английское название, строка
"layerId": null,null - слой, для поиска по умолчанию, иначе id из массива
"items": [{массив найденных объектов
"pkid": 162815,первичный ключ, строка
"label": "Казань, городской округ Казань, Татарстан",заголовок, строка
"zoom": 16,зум для отображения, целое число
"point": {точка, объект
"lon": 49.28956419647526,долгота точки, вещественное число
"lat": 55.75372719479096широта точки, вещественное число
}, 
"address": {расшифровка адреса, объект
"city": "Казань", 
"county": "городской округ Казань", 
"state": "Татарстан", 
"country": "Россия", 
"country_code": "ru" 
}, 
"sys_clr_id": 2,системное поле id cluster, если присутствует в атрибутах слоя
"sys_org_id": nullсистемное поле id организации, если присутствует в атрибутах слоя
}] 
}, ... 
] 

Поиск по координатам (GET запрос)

GET /geocoding

Структура запроса:

GET /geocoding?lon=55.45&lat=49.67&layersId=12,23,345,56&zoom=14&onlylayers=true&token=b3f0a9d48165be1c95bd028d3f04094g

Параметры:

  • lon — долгота точки, вещественное число
  • lat — широта точки, вещественное число
  • layersId — id слоев, где также надо осуществлять поиск, через запятую
  • zoom — уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса
  • onlylayers — есть true, то осуществлять поиск только по слоям
  • token — ключ доступа

Ответ

Статус: 200 - успешное выполнение

Формат: json

[ 
{ 
"layer": "Улицы",русское название, строка
"wmsName": "world:k2_ulitsy_l",английское название, строка
"layerId": null,null - слой, для поиска по умолчанию, иначе id из массива
"items": [{массив найденных объектов
"pkid": 162815,первичный ключ, строка
"label": "Казань, городской округ Казань, Татарстан",заголовок, строка
"zoom": 16,зум для отображения, целое число
"point": {точка, объект
"lon": 49.28956419647526,долгота точки, число с плавающей точкой
"lat": 55.75372719479096широта точки, число с плавающей точкой
}, 
"address": {расшифровка адреса, объект
"city": "Казань", 
"county": "городской округ Казань", 
"state": "Татарстан", 
"country": "Россия", 
"country_code": "ru" 
}, 
"sys_clr_id": null,системное поле id cluster, если присутствует в атрибутах слоя
"sys_org_id": 4системное поле id организации, если присутствует в атрибутах слоя
}] 
}, ... 
]