- Пользователи
- Список пользователей
- Количество пользователей
- Информация о пользователе
- Роли пользователей
- Создание пользователя
- Изменение пользователя
- Удаление пользователя
- Экспорт пользователя
- Управление пользователями (вариант 2)
- Управление типами пользователей
- Управление метками пользователей
- Мониторинг пользователей
- Датчики пользователей
- Объекты слоя
- Создание объекта
- Список возможных значений для полей, связанных с таблицами
- Изменение объекта
- Удаление объекта
- Список объектов
- Количество объектов
- Объект слоя
- Список объектов в точке
- Список объектов в области
- Получение медиа информации всех объектов
- Получение медиа информации объекта
- Получение медиа файла
Главная страница
Базовые слои
GET /baselayers
Пример запроса:
GET /baselayers?apiVersion=2.0
apiVersion: версия API, 2.0
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 1,
"name": "Карта России",
"code": 1940335525,
"className": "M.TileLayer",
"firstKey": "https://basemap.geo4.me/worldmap/{z}/{x}/{y}.png",
"options": "{minZoom: 2, maxZoom: 19}",
"customClass": null,
"position": 1,
"space": false,
"main": true
}
]
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Карта
GET /mapextent
Пример запроса:
GET /mapextent
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"mapExtent": {
"id": 6,
"name": "Наименование",
"extent": {
"minX": 47.867088965011725,
"minY": 54.233424150623314,
"maxX": 54.99757390915839,
"maxY": 56.72299186350165,
"projection": "EPSG:4326"
},
"main": true
}
}
// текущее положение карты, объект // id, целое число // название, строка // расположение, объект // минимальное значение X, вещественное число // минимальное значение Y, вещественное число // максимальное значение X, вещественное число // максимальное значение Y, вещественное число // проекция // является основным положением карты
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущая версия
GET /version
Пример запроса:
GET /version
Ответ:
Статус: 200 - успешное выполнение
Формат: json
3.31.0
// текущая версия приложения
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущая локаль
GET /locale
Пример запроса:
GET /locale
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"language": "ru",
"country": "Russia",
"code": "ru"
}
// язык, строка // страна, строка // код, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Языки
Доступные языки
GET /languages
Структура запроса:
GET /languages
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 1,
"code": "ru",
"name": "Русский",
"position": 1,
"visible": true,
"main": true,
"current": true
}
]
// id, целое число // двухбуквенный код язык, строка // название языка, строка // позиция в списке, целое число // показывать ли в интерфейсе, логическое // язык сервера, логическое // текущий язык пользователя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Переключение языка
Передается параметр с любым запросом, ответ от основного запроса
/?lang=en
Структура запроса:
/?lang=en
lang: код языка
Ответ:
Статус: 200 - успешное выполнение
Ответ от основного запроса
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Авторизация
Авторизация на сервере
POST /auth/token
Структура запроса:
POST /auth/token
Пример запроса:
{
"login": "testlogin",
"password": "12345"
}
// логин пользователя, строка // пароль, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjM3NjMzNzIs",
"refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjQzNj",
"ttl": 3600
}
// ключ доступа, строка // ключ для обновления ключа доступа, строка // время жизни ключа доступа в секундах, целое число
Статус: 401 - логин или пароль переданы неверно
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Обновление ключа доступа
GET /auth/token/refresh
Структура запроса:
GET /auth/token/refresh?refreshToken=RHJNK5KJBGJARB654JBFDBGRJKTB45TJBGJARTB4KJG
refreshToken: ключ для обновления ключа доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"token": "hwk12poi3f1",
"refreshToken": "mbs90lon2a8",
"ttl": 3600
}
// новый ключ доступа, строка // новый ключ для обновления ключа доступа, строка // время жизни ключа доступа в секундах, целое число
Статус: 400 - не передан параметр refreshToken
Формат: text/plain
Содержит описание ошибки
Статус: 404 - параметр refreshToken не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Авторизован ли пользователь
GET /auth
Структура запроса:
GET /auth?token=9d63ac832398e2bc8992459fa5551b6b
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"authenticated": true,
"user": {
"id": 110,
"login": "login",
"name": "Пользователь",
"info": {
"address": "",
"phone": "",
"email": "test@gmail.com",
"passport": ""
},
"organizations": [
{
"main": true,
"organizationId": 4
}
],
"tracking": true,
"avatarUpdateDate": null,
"tags": [
{
"id": 1
}
],
"role": {
"id": 10,
"title": "Администратор организации",
"code": "ORG_ADMINISTRATOR",
"order": 3
},
"typeId": 1,
"roleId": 10
"organizationId": 4,
"organizationName": "Организация",
}
}
// true, если пользователь авторизован, иначе false, логическое // данные о пользователе, если он авторизован, объект // id пользователя, целое число // логин пользователя // имя пользователя, строка // данные о пользователе, объект // адрес пользователя, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // доступные организации, массив объектов // является ли основной, логичское // id организации, целое число // включен ли трекинг, логическое // дата обновления аватарки, если она есть, timestamp // прикрепленные метки, массив объектов // id метки, целое число // информация о роли, объект // id, целое число // название, строка // код, строка // id типа, целое число // id роли, целое число // id основной организации, целое число // название основной организации, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущий пользователь
GET /users/current
Структура запроса:
GET /users/current?token=9d63ac832398e2bc8992459fa5551b6b
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"user": {
"id": 110,
"login": "login",
"name": "Пользователь",
"info": {
"address": "",
"phone": "",
"email": "test@gmail.com",
"passport": ""
},
"organizations": [
{
"main": true,
"organizationId": 4
}
],
"tracking": true,
"avatarUpdateDate": null,
"tags": [
{
"id": 1
}
],
"role": {
"id": 10,
"title": "Администратор организации",
"code": "ORG_ADMINISTRATOR",
"order": 3
},
"typeId": 1,
"roleId": 10
"organizationId": 4,
"organizationName": "Организация",
}
}
// true, если пользователь авторизован, иначе false, логическое // данные о пользователе, если он авторизован, объект // id пользователя, целое число // логин пользователя // имя пользователя, строка // данные о пользователе, объект // адрес пользователя, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // доступные организации, массив объектов // является ли основной, логичское // id организации, целое число // включен ли трекинг, логическое // дата обновления аватарки, если она есть, timestamp // прикрепленные метки, массив объектов // id метки, целое число // информация о роли, объект // id, целое число // название, строка // код, строка // id типа, целое число // id роли, целое число // id основной организации, целое число // название основной организации, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход
GET /logout
Структура запроса:
GET /logout?token=9d63ac832398e2bc8992459fa5551b6b
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok"
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Организации
Список организаций
GET /organizations
GET /organizations?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 3,
"name": "Клиент 1",
"logo": "logo_3.png",
"client": true,
"mapinformerDeeplink": "https://mapinformer.geo4.me/Yy3keapLj3",
"info": {
"address": "",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": "",
"fullName": "",
"account": "",
"headFio": "",
"accountantFio": "",
"maxUsersCount": null
},
"totalUsers": 2,
"dataStoreId": 3,
"clusterId": 1,
"clusterName": "По умолчанию1",
"mapExtentBBox": {
"minX": 37.4973678588867,
"minY": 55.72034270027683,
"maxX": 37.73769378662114,
"maxY": 55.79375442691235,
"projection": "EPSG:4326"
}
},...]
// id организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, логическое // ссылка для регистрации в организации, строка // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация об организации
GET /organizations/{id}
GET /organizations/1?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 3,
"name": "Клиент 1",
"logo": "logo_3.png",
"client": true,
"mapinformerDeeplink": "https://mapinformer.geo4.me/Yy3keapLj3",
"info": {
"address": "",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": "",
"fullName": "",
"account": "",
"headFio": "",
"accountantFio": "",
"maxUsersCount": null
},
"totalUsers": 2,
"dataStoreId": 3,
"clusterId": 1,
"clusterName": "По умолчанию1",
"mapExtentBBox": {
"minX": 37.4973678588867,
"minY": 55.72034270027683,
"maxX": 37.73769378662114,
"maxY": 55.79375442691235,
"projection": "EPSG:4326"
}
}
// id организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, логическое // ссылка для регистрации в организации, строка // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Описание организации
GET /organizations/{id}/about
GET /organizations/1?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: html
описание организации в формате html
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание организации
Доступно только для пользователей с правами гл. администратора и администратора организации
POST /organizations
POST /organizations?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Организация",
"dataStoreId": 3,
"clusterId": 1,
"client": true,
"assignedOrganizationId": 3,
"info": {
"about": "",
"account": "",
"accountantFio": "",
"accountantSignatureUuid": null,
"address": "",
"bank": "",
"bankBik": "",
"bankKpp": "",
"bankSchet": "",
"email": "",
"fax": "",
"fullName": "",
"headFio": "",
"headSignatureUuid": null,
"inn": "",
"kpp": "",
"logoUuid": null,
"maxUsersCount": "",
"phone": "",
"stampUuid": null
},
"mapExtent": [
56.72299186350165,
54.233424150623314,
54.997573909158405,
47.86708896501173
]
}
// название организации, строка // id хранилища данных (доступно только гл. админу), целое число // id кластера (доступно только гл. админу), целое число // является ли организация клиентской (доступно только гл. админу), логическое // дополнительная информация, объект // информация об организации, строка // описание, текст // счет организации, строка // ФИО бухгалтера, строка // подпись бухгалтера, uuid загруженного файла, строка // адрес, строка // банк, строка // БИК банка, целое число // КПП банка, целое число // кор. счет банка, строка // email, строка // факс, строка // полное юридическое название организации, строка // ФИО директора, строка // подпись директора, uuid загруженного файла, строка // ИНН, целое число // КПП, целое число // логотип организации, uuid загруженного файла, строка // максимальное количество пользователей в организации, целое число // телефон, строка // печать, uuid загруженного файла, строка // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 3,
"name": "Клиент 1",
"logo": "logo_3.png",
"client": true,
"mapinformerDeeplink": "https://mapinformer.geo4.me/Yy3keapLj3",
"info": {
"address": "",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": "",
"fullName": "",
"account": "",
"headFio": "",
"accountantFio": "",
"maxUsersCount": null
},
"totalUsers": 2,
"dataStoreId": 3,
"clusterId": 1,
"clusterName": "По умолчанию1",
"mapExtentBBox": {
"minX": 37.4973678588867,
"minY": 55.72034270027683,
"maxX": 37.73769378662114,
"maxY": 55.79375442691235,
"projection": "EPSG:4326"
}
}
// id организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, логическое // ссылка для регистрации в организации, строка // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение организации
Доступно только для пользователей с правами гл. администратора и администратора организации
PUT /organizations/{id}
PUT /organizations/35?token=9c6333f651846cfc94feae0597b61224
id: id организации
token: ключ доступа
Пример запроса:
Формат: json
{
"id": 1,
"name": "Организация",
"dataStoreId": 3,
"clusterId": 1,
"client": true,
"assignedOrganizationId": 3,
"info": {
"about": "",
"account": "",
"accountantFio": "",
"accountantSignatureUuid": null,
"accountantSignatureDeleted": false,
"address": "",
"bank": "",
"bankBik": "",
"bankKpp": "",
"bankSchet": "",
"email": "",
"fax": "",
"fullName": "",
"headFio": "",
"headSignatureUuid": null,
"headSignatureDeleted": false,
"inn": "",
"kpp": "",
"logoUuid": null,
"logoDeleted": false,
"maxUsersCount": "",
"phone": "",
"stampUuid": null,
"stampDeleted": false
},
"mapExtent": [
56.72299186350165,
54.233424150623314,
54.997573909158405,
47.86708896501173
]
}
// id организации, целое число // название организации, строка // id хранилища данных (доступно только гл. админу), целое число // id кластера (доступно только гл. админу), целое число // является ли организация клиентской (доступно только гл. админу), логическое // дополнительная информация, объект // информация об организации, строка // счет организации, строка // ФИО бухгалтера, строка // подпись бухгалтера, uuid загруженного файла, строка // удален ли файл подписи бухгалтера, логическое // адрес, строка // банк, строка // БИК банка, целое число // КПП банка, целое число // кор. счет банка, строка // email, строка // факс, строка // полное юридическое название организации, строка // ФИО директора, строка // подпись директора, uuid загруженного файла, строка // удален ли файл подписи директора, логическое // ИНН, целое число // КПП, целое число // логотип организации, uuid загруженного файла, строка // удален ли файл логотипа, логическое // максимальное количество пользователей в организации, целое число // телефон, строка // печать, uuid загруженного файла, строка // удален ли файл печати, логическое // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 3,
"name": "Клиент 1",
"logo": "logo_3.png",
"client": true,
"mapinformerDeeplink": "https://mapinformer.geo4.me/Yy3keapLj3",
"info": {
"address": "",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": "",
"fullName": "",
"account": "",
"headFio": "",
"accountantFio": "",
"maxUsersCount": null
},
"totalUsers": 2,
"dataStoreId": 3,
"clusterId": 1,
"clusterName": "По умолчанию1",
"mapExtentBBox": {
"minX": 37.4973678588867,
"minY": 55.72034270027683,
"maxX": 37.73769378662114,
"maxY": 55.79375442691235,
"projection": "EPSG:4326"
}
}
// id организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, логическое // ссылка для регистрации в организации, строка // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление организации
Доступно только для пользователей с правами гл. администратора
DELETE /organizations/{id}
DELETE /organizations/35?token=9c6333f651846cfc94feae0597b61224
id: id организации
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт организации
Доступно только для пользователей с правами гл. администратора и гл. инспектора
GET /organizations.xlsx
GET /organizations.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Пользователи
Список пользователей
GET /users
GET /users?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 108,
"login": "login",
"name": "ФИО",
"tracking": true,
"organizationId": 4,
"organizationName": "Организация",
"organizations": [
{
"main": true,
"organizationId": 4
},...
],
"roleId": 10,
"typeId": 25,
"info": {
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
},...]
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, логическое // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, логическое // id организации, целое число // id роли пользователя, целое число // id типа пользователя, целое число // информация о пользователе, объект // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество пользователей
GET /users/count
GET /users/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
233
// количество пользователей, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о пользователе
GET /users
GET /users/108?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 108,
"login": "login",
"name": "ФИО",
"tracking": true,
"organizationId": 4,
"organizationName": "Организация",
"organizations": [
{
"main": true,
"organizationId": 4
},...
],
"roleId": 10,
"typeId": 25,
"info": {
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, логическое // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, логическое // id организации, целое число // id роли пользователя, целое число // id типа пользователя, целое число // информация о пользователе, объект // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Роли пользователей
Доступно только для пользователей с правами администратора
GET /users/roles
GET /users/roles?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 7,
"title": "Пользователь организации",
"code": "ORG_USER",
"order": 5
},...
]
// id роли, целое число // название роли, строка // код роли, строка // порядок, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание пользователя
Доступно только для пользователей с правами гл. администратора, администратора организации, администратора кластера
POST /users
POST /users?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"login": "login",
"name": "ФИО",
"password": "",
"roleId": 10,
"typeId": 1,
"organizationId": 4,
"additionalOrgIds": [24],
"tracking": false,
"info": {
"passport": "",
"address": "",
"phone": "",
"email": ""
},
"tags": [12,14],
"avatarUuid": "hrajjtwyjtwyjtjstyjstywjtsjtyj.jpg"
}
// логин, строка // имя пользователя, строка // пароль, строка // id роли, целое число // id типа, целое число // id основной организации, целое число // массив id дополнительных организаций // включен ли мониторинг, логическое // информация о пользователе, объект // паспортные данные, строка // адрес пользователя, строка // номер телефона, строка // электронная почта, строка // массив id меток // uuid загруженного аватара, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 108,
"login": "login",
"name": "ФИО",
"tracking": true,
"organizationId": 4,
"organizationName": "Организация",
"organizations": [
{
"main": true,
"organizationId": 4
},...
],
"roleId": 10,
"typeId": 25,
"info": {
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, логическое // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, логическое // id организации, целое число // id роли пользователя, целое число // id типа пользователя, целое число // информация о пользователе, объект // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение пользователя
Доступно только для пользователей с правами гл. администратора, администратора организации, администратора кластера
PUT /users/{id}
PUT /users/24?token=9c6333f651846cfc94feae0597b61224
id: id пользователя
token: ключ доступа
Пример запроса:
Формат: json
{
"id": 24,
"login": "login",
"name": "ФИО",
"password": "",
"roleId": 10,
"typeId": 1,
"organizationId": 4,
"additionalOrgIds": [24],
"tracking": false,
"info": {
"passport": "",
"address": "",
"phone": "",
"email": ""
},
"tags": [12,14],
"avatarUuid": "hrajjtwyjtwyjtjstyjstywjtsjtyj.jpg",
"avatarDeleted": false
}
// id пользователя, целое число // логин, строка // имя пользователя, строка // пароль, строка // id роли, целое число // id типа, целое число // id основной организации, целое число // массив id дополнительных организаций // включен ли мониторинг, логическое // информация о пользователе, объект // паспортные данные, строка // адрес пользователя, строка // номер телефона, строка // электронная почта, строка // массив id меток // uuid нового загруженного аватара, строка // если надо удалить аватарку, логическое
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 24,
"login": "login",
"name": "ФИО",
"tracking": true,
"organizationId": 4,
"organizationName": "Организация",
"organizations": [
{
"main": true,
"organizationId": 4
},...
],
"roleId": 10,
"typeId": 25,
"info": {
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, логическое // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, логическое // id организации, целое число // id роли пользователя, целое число // информация о пользователе, объект // id пользователя, целое число // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление пользователя
Доступно только для пользователей с правами гл. администратора, администратора организации, администратора кластера
DELETE /users/{id}
DELETE /users/24?token=9c6333f651846cfc94feae0597b61224
id: id пользователя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт пользователя
Доступно только для пользователей с правами гл. администратора, администратора организации, администратора кластера
GET /users.xlsx
GET /users.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сервисы
WMS - получение тайла слоя
GET /service/wms
Структура запроса:
GET /service/wms?service=WMS&request=GetMap&version=1.1.1&layers=kziokzn:vamin_kioski_p_vw&
styles=vamin_kioski_p_vw_style_21_03_2011_19_20_16&format=image/png&transparent=true&height=256&
width=256&srs=EPSG:900913&bbox=5283327.395071382,7514065.628545966,5322463.153553393,7553201.387027976&
token=9c6333f651846cfc94feae0597b61224
service: сервис запроса WMS
request: название запроса GetMap
version: версия 1.1.1
layers: английское название слоя или слоев через запятую
styles: название стиля или стилей через запятую
format: формат, в котором вернется тайл
transparent: есть ли прозрачность
height: высота тайла
width: ширина тайла
srs: код проекции
bbox: область запроса
cql_filter: строка CQL фильтра
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - ни один слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
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=9c6333f651846cfc94feae0597b61224
request: название запроса GetLegendGraphic
layer: английское название слоя
style: название стиля слоя
format: формат, в котором вернется легенда
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS - получение WFS слоя
GET /service/wfs
Структура запроса:
GET /service/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=DEMO:kfu_building&outputFormat=json&
bbox=40.14404296875,52.905589081407825,61.23779296875,57.630699148918424&token=9c6333f651846cfc94feae0597b61224
service: сервис запроса WFS
request: название запроса GetFeature
version: версия 1.0.0
typeName: английское название слоя
outputFormat: формат возвращаемых данных
bbox: область запроса слоя
srs: код проекции, по умолчанию EPSG:4326
cql_filter: строка CQL фильтра
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от параметра outputFormat
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS - post запросы к геосерверу
POST /service/wfs/{layerId}
Структура запроса:
POST /service/wfs/{layerId}
service: сервис запроса WFS
Пример запроса:
Формат: Xml
<wfs:Transaction service="WFS" version="1.0.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:topp="
http://www.openplans.org/topp"
xmlns:gml="
http://www.opengis.net/gml"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd
http://www.openplans.org/topp
http://localhost:8080/geoserver/wfs/DescribeFeatureType?typename=topp:tasmania_roads">
<wfs:Insert>
<topp:tasmania_roads>
<topp:the_geom>
<gml:MultiLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">
494475.71056415,5433016.8189323 494982.70115662,5435041.95096618
</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>
</topp:the_geom>
<topp:TYPE>alley</topp:TYPE>
</topp:tasmania_roads>
</wfs:Insert>
</wfs:Transaction>
// xml запроса к геосерверу, для указанного слоя
Ответ:
Статус: 200 - успешное выполнение, возвращается ответ от Geoserver
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
Запрос sld-файла стиля
GET /service/styles/{layerId}/{styleName}.sld
Структура запроса:
GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
styleName: название стиля
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/xml
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Хранилища
Список хранилищ
Доступно только для пользователей с правами администратора
GET /datastores
Структура запроса:
GET /datastores?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 1,
"name": "Datastore",
"host": "192.168.63.36",
"port": 5432,
"database": "data",
"login": "login",
"isInfrastructure": true,
"schema": "data"
},...]
// id хранилища, целое число // название хранилища, строка // хост, строка // порт, целое число // база данных, строка // логин, строка // из инфраструктуры, логическое // название схемы, с которой работает хранилище, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание хранилища
Доступно только для пользователей с правами администратора
POST /datastores
Структура запроса:
POST /datastores?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"name": "Datastore",
"host": "192.168.63.36",
"port": 5432,
"database": "data",
"login": "login",
"isInfrastructure": true,
"schema": "data"
}
// название хранилища, строка // хост, строка // порт, целое число // база данных, строка // логин, строка // из инфраструктуры, логическое // название схемы, с которой работает хранилище, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 25,
"name": "Datastore",
"host": "192.168.63.36",
"port": 5432,
"database": "data",
"login": "login",
"isInfrastructure": true,
"schema": "data"
}
// id хранилища, целое число // название хранилища, строка // хост, строка // порт, целое число // база данных, строка // логин, строка // из инфраструктуры, логическое // название схемы, с которой работает хранилище, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение хранилища
Доступно только для пользователей с правами администратора
PUT /datastores/{id}
Структура запроса:
PUT /datastores/64?token=9c6333f651846cfc94feae0597b61224
id: id хранилища
token: ключ доступа
Пример запроса:
{
"id": 64,
"name": "Datastore",
"host": "192.164.63.32",
"port": 5874,
"database": "data",
"login": "login",
"password": "654321",
"isInfrastructure": true,
"schema": "data"
}
// id хранилища, целое число // название хранилища, строка // хост, строка // порт, целое число // база данных, строка // логин, строка // пароль, строка // из инфраструктуры, логическое // название схемы, с которой работает хранилище, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 64,
"name": "Datastore",
"host": "192.164.63.32",
"port": 5874,
"database": "data",
"login": "login",
"isInfrastructure": true,
"schema": "data"
}
// id хранилища, целое число // название хранилища, строка // хост, строка // порт, целое число // база данных, строка // логин, строка // из инфраструктуры, логическое // название схемы, с которой работает хранилище, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление хранилища
Доступно только для пользователей с правами администратора
DELETE /datastores/{id}
Структура запроса:
DELETE /datastores/64?token=9c6333f651846cfc94feae0597b61224
id: id хранилища
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт хранилищ
Доступно только для пользователей с правами администратора
GET /datastores.xlsx
Структура запроса:
GET /datastores.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Проекции хранилищ
Доступно только для пользователей с правами администратора
GET /datastores/projections
Структура запроса:
GET /datastores/projections?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"projection": "EPSG:3819"
},...]
// проекция
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Проекции хранилища
Доступно только для пользователей с правами администратора
GET /datastores/{id}/projections
Структура запроса:
GET /datastores/42/projections?token=9c6333f651846cfc94feae0597b61224
id: id хранилища
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"projection": "EPSG:3819"
},...]
// проекция
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Таблицы хранилища
Доступно только для пользователей с правами администратора
GET /datastores/{id}/tables
Структура запроса:
GET /datastores/42/tables?token=9c6333f651846cfc94feae0597b61224
id: id хранилища
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"datastoreId": 42,
"tableId": 0,
"layerId": null,
"nameDb": "departments_news_points",
"geometryType": "POINT"
},...]
// id хранилища, целое число // id таблицы, целое число // id слоя, целое число // название базы данных, строка // тип геометрии, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о таблице хранилища
Доступно только для пользователей с правами администратора
GET /datastores/{id}/tables/{tablename}
Структура запроса:
GET /datastores/42/tables/test_table?token=9c6333f651846cfc94feae0597b61224
id: id хранилища
tablename: название таблицы
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"geometryType": "multilinestring",
"name": "test_table",
"title": "Тестовая таблица",
"style": {
"styleName": null,
"geoCss": "* {\n stroke-dashoffset: 0;\n}",
"base": false,
"simple": false
},
"dataStoreId": 22,
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "int",
"title": true,
"view": true,
"order": 1,
"htmlEscape": true,
"popupView": false,
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null,
},...]
}
// тип геометрии, строка // название таблицы, строка // русское название таблицы, строка // стили, объект // название стиля, строка // geocss стиль, строка // базовый, логическое // простой, логическое // id хранилища, целое число // атрибуты таблицы, массив // название атрибута, строка // русское название атрибута, строка // тип, строка // является заголовком, логическое // доступен к просмотру, логическое // порядковый номер, целое число // экранировать ли html, логическое // показывать ли во всплывающем окне, логическое // поле связано с таблицей, логическое // id таблицы, целое число // id поля c ключом, целое число // id поля с названием, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Слои
Список слоев
GET /layers
Структура запроса:
GET /layers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Получение списка слоев по английскому названию
GET /layers?name=testlayer&token=9c6333f651846cfc94feae0597b61224
name: английское название слоя или слово, встречающееся в названии списка слоев
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layers": [{
"order": 9,
"layer": {
"id": 135,
"name": "testlayerpoint",
"info": {
"id": 135,
"typeName": "test:testlayerpoint1410257743497_vw",
"style": "point",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"layerType": "vector",
"geometryType": "point",
"access": {
"read": true,
"edit": false,
"write": true,
"serviceObjects": true
},
"system": false,
"systemCode": null,
"fields": [{
"id": 250,
"name": "Field",
"rusName": "Поле",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
}
},
"groupId": 12
}]
}
// массив слоев // порядковый номер в списке, целое число // объект слоя // id слоя, целое число // название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // тип слоя vector или raster, строка // тип геометрии, строка // права текущего пользователя на слой // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания // является ли слой системным, логическое // код для системного слоя, строка // объект полей // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/редактировании объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество слоев
GET /layers/count
GET /layers/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
237
// количество слоев
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список справочников, таблиц с данными и слоев
GET /layers/datatables/all
GET /layers/datatables/all?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 2,
"layerId": null,
"schemeName": "data",
"nameDb": "materials",
"nameMap": "Материалы и услуги",
"tableType": 4,
"storeId": 3,
"attributes": [
{
"id": 4,
"layerFieldId": null,
"nameDb": "gid",
"nameMap": "gid",
"typeField": "int",
"reference": false,
"refTable": null,
"refLayerId": null,
"refField": null,
"refFieldInDb": null,
"refFieldName": null,
"refFieldNameInDb": null
},
{
"id": 5,
"layerFieldId": null,
"nameDb": "name",
"nameMap": "Наименование",
"typeField": "string",
"reference": false,
"refTable": null,
"refLayerId": null,
"refField": null,
"refFieldInDb": null,
"refFieldName": null,
"refFieldNameInDb": null
},
{
"id": 6,
"layerFieldId": 10,
"nameDb": "sloj",
"nameMap": "Cлой",
"typeField": "int",
"reference": true,
"refTable": "22",
"refLayerId": 12,
"refField": "299",
"refFieldInDb": "gid",
"refFieldName": "303",
"refFieldNameInDb": "name"
}
]
}
]
// массив справочников и таблиц данных // объект // id таблицы // id слоя, если таблица используется как слой // схема // название в БД // русское название таблицы // тип (4 - таблица с данными, 2 - справочник, 1 - слой) // id хранилища данных // атрибуты // id атрибута // id соответствующего поля слоя (если это слой) // название в БД // русское название // тип // есть ли связанная таблица // id таблицы // id слоя (если связанная таблица - слой) // id поля с первичным ключом в таблице // английское название поля с первичным ключом в таблице // id поля со значением в таблице // английское название поля со значением в таблице
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание слоя
POST /layers
Структура запроса:
POST /layers?token=9c6333f651846cfc94feae0597b61224&apiVersion=2.0
token: ключ доступа
token: версия REST API 2.0
Пример запроса:
Формат: json
{
"name": "Novyi-sloy",
"title": "Новый слой",
"groupId": 1053,
"dataStoreId": 12,
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"view": true,
"forUpsert": true,
"forSearch": true,
"htmlEscape": true,
"popupView": false,
"order": 1,
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"service": "WFS",
"fileName": "point",
"isEditable": true,
"isStyleEditable": true,
"styles": {
"isBase": true
},
"projection": "EPSG:4326",
"customFields": {
"field_1": {
"field_id": 41,
"value": "1"
}
},
"serviceObjects": {
"turned": true,
"title_format": "{0} - {1}",
"title_fields": [
"name",
"count"
],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
},
{
"type": "Description",
"field_id": null,
"format": "{0}",
"fields": [
"category"
]
},
{
"type": "CustomField",
"field_id": 10,
"format": "{0}",
"fields": [
"color"
]
}
]
},
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"write": false,
"serviceObjects": true,
}
]
}
// английское название слоя, строка // заголовок, строка // id группы, целое число // id хранилища, целое число // данные об атрибутах, массив // английское название, строка // русское название, строка // тип, строка // показывать ли поле, логическое // показывать ли поле при создании/изменении объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // экранировать ли html, логическое // показывать ли во всплавающем окошке, логическое // порядок, целое число // является ссылкой на таблицу, логическое // id таблицы, целое число // id поля с первичным ключом в таблице, целое число // id поля с названием в таблице, целое число // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // сервис получения данных WMS/WFS, строка // тип геометрии, строка // является редактируемым, логическое // можно редактировать стиль, логическое // стили, объект // является ли стиль простым, логическое // проекция, строка // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // доп. настройка объектов обслуживания // включена ли, логическое // формат названия (совестимость со старыми версиям) // поля для формата названия (совестимость со старыми версиям) // соответствие атрибутов и полей задания // тип для заголова задания // формат // поля для формата // тип для описания задания // формат // поля для формата // тип для доп.полей задания // id доп.поля // формат // поля для формата // права на слой по умолчанию // правило // id роли // для всех ролей, логическое // id организации // для всех органзаций, логическое // true - для клиентских органзаций, false - для не клиентских // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания
Примечание:
В зависимости от выбранного типа геометрии в "styles" могут передаваться следующие параметры:
- isBase - базовый стиль (логическое)
- isSimple - простой стиль (логическое)
- style - расширенный стиль (строка - описывается geocss)
Параметр service можно не передавать. Для полигонов и линий по умолчанию WMS, для точек WFS.
Параметр projection можно не передавать. По умолчанию - EPSG:4326
Доступные типы атрибутов:
- string - строка
- int - целое число
- boolean - логический тип
- num - вещественное число
- date - дата
- dateTime - дата и время
- dictionary - справочник (необходимо заполнить reference = false, refTable - id таблицы из списка справочиков, refField - id поля с первичным ключом в таблице, refFieldName - id поля с названием в таблице)
- datatable - таблица с данными (необходимо заполнить reference = false, refTable - id таблицы из списка таблиц с данными, refField - id поля с первичным ключом в таблице, refFieldName - id поля с названием в таблице)
- systemorg - связь с организацией (английское название поля должно быть sys_org_id)
- systemcluster - связь с кластером (английское название поля должно быть sys_clr_id)
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/изменении объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка // название хранилища, строка // тип слоя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение слоя
PUT /layers/{layerId}
Структура запроса:
PUT /layers/365?token=9c6333f651846cfc94feae0597b61224&apiVersion=2.0
layerId: id изменяемого слоя
token: ключ доступа
apiVersion: версия REST API 2.0
Пример запроса:
Формат: json
{
"id": 40,
"name": "workspace:noviysloi1_vw",
"title": "Новый слой",
"service": "WFS",
"groupId": 4,
"isStyleEditable": true,
"styles": {
"isBase": false,
"isSimple": true,
"style": "*{\n mark: symbol(\"circle\");\n}
\n:mark{\n fill:#0000FF;\n
fill-opacity:1;\n size:7;\n\n}"
},
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"view": true,
"forUpsert": true,
"forSearch": true,
"htmlEscape": true,
"popupView": false,
"order": 1,
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"customFields": {
"field": {
"field_id": 501,
"value": ""
}
},
"serviceObjects": {
"turned": true,
"mappingId": 1,
"geo_field": "the_geom",
"title_format": "{0} - {1}",
"title_fields": [
"name",
"count"
],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
},
{
"type": "Description",
"field_id": null,
"format": "{0}",
"fields": [
"category"
]
},
{
"type": "CustomField",
"field_id": 10,
"format": "{0}",
"fields": [
"color"
]
}
]
},
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"write": false,
"serviceObjects": true,
}
]
}
// id слоя, целое число // английское название, строка // русское название, строка // тип сервиса, WMS/WFS // id группы, целое число // можно ли редактировать стиль, логическое // стили, объект // является ли стиль базовым, логическое // является ли стиль простым, логическое // geocss стиль // данные об атрибутах, массив // английское название, строка // русское название, строка // тип, строка // показывать ли поле, логическое // показывать ли поле при создании/изменении объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // экранировать ли html, логическое // показывать ли во всплавающем окошке, логическое // порядок, целое число // является ссылкой на таблицу, логическое // id таблицы, целое число // id поля с первичным ключом в таблице, целое число // id поля с названием в таблице, целое число // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // для удаления необходимо передать пустую строку и пустой массив // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // для удаления необходимо передать пустую строку и пустой массив // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // доп. настройка объектов обслуживания // включена ли, логическое // id настройки // атрибут и направление сортировки (совестимость со старыми версиям) // формат названия (совестимость со старыми версиям) // поля для формата названия (совестимость со старыми версиям) // соответствие атрибутов и полей задания // тип для заголова задания // формат // поля для формата // тип для описания задания // формат // поля для формата // тип для доп.полей задания // id доп.поля // формат // поля для формата // права на слой по умолчанию // правило // id роли // для всех ролей, логическое // id организации // для всех органзаций, логическое // true - для клиентских органзаций, false - для не клиентских // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/изменения объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка // название хранилища, строка // тип слоя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей слоя
PATCH /layers/{layerId}
Структура запроса:
PATCH /layers/1413?token=9c6333f651846cfc94feae0597b61224&apiVersion=2.0
layerId: id изменяемого слоя
token: ключ доступа
apiVersion: версия REST API 2.0
Пример запроса:
Формат: json
{
"id": 40,
"name": "workspace:noviysloi1_vw",
"title": "Новый слой",
"service": "WFS",
"groupId": 4,
"isStyleEditable": true,
"styles": {
"isBase": false,
"isSimple": true,
"style": "*{\n mark: symbol(\"circle\");\n}
\n:mark{\n fill:#0000FF;\n
fill-opacity:1;\n size:7;\n\n}"
},
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"forUpsert": true,
"forSearch": true,
"view": true,
"htmlEscape": true,
"popupView": false,
"order": 1,
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"customFields": {
"field": {
"field_id": 501,
"value": ""
}
},
"serviceObjects": {
"turned": true,
"mappingId": 1,
"geo_field": "the_geom",
"title_format": "{0} - {1}",
"title_fields": [
"name",
"count"
],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
},
{
"type": "Description",
"field_id": null,
"format": "{0}",
"fields": [
"category"
]
},
{
"type": "CustomField",
"field_id": 10,
"format": "{0}",
"fields": [
"color"
]
}
]
},
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"write": false,
"serviceObjects": true,
}
]
}
// id слоя, целое число // английское название, строка // русское название, строка // тип сервиса, WMS/WFS // id группы, целое число // можно ли редактировать стиль, логическое // стили, объект // является ли стиль базовым, логическое // является ли стиль простым, логическое // geocss стиль // данные об атрибутах, массив // английское название, строка // русское название, строка // тип, строка // показывать ли поле при создании/изменении объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // показывать ли поле, логическое // экранировать ли html, логическое // показывать ли во всплавающем окошке, логическое // порядок, целое число // является ссылкой на таблицу, логическое // id таблицы, целое число // id поля с первичным ключом в таблице, целое число // id поля с названием в таблице, целое число // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // для удаления необходимо передать пустую строку и пустой массив // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // для удаления необходимо передать пустую строку и пустой массив // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // доп. настройка объектов обслуживания // включена ли, логическое // id настройки // поле с геометрией (совестимость со старыми версиям) // формат названия (совестимость со старыми версиям) // поля для формата названия (совестимость со старыми версиям) // соответствие атрибутов и полей задания // тип для заголова задания // формат // поля для формата // тип для описания задания // формат // поля для формата // тип для доп.полей задания // id доп.поля // формат // поля для формата // права на слой по умолчанию // правило // id роли // для всех ролей, логическое // id организации // для всех организаций, логическое // true - для клиентских органзаций, false - для не клиентских // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/редактировании объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка // название хранилища, строка // тип слоя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление слоя
DELETE /layers/{layerId}
Структура запроса:
DELETE /layers/14?token=9c6333f651846cfc94feae0597b61224
layerId: id удаляемого слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт слоев
Доступно только для пользователей с правами администратора
GET /layers.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список слоев, используемый в качестве объектов обслуживания
GET /layers/serviceobjects
GET /layers/serviceobjects?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 32,
"name": "Слой 1",
"owner": 6,
"system": false,
"systemCode": null,
"info": {
"id": 32,
"typeName": "workspace:sloj_1_vw",
"style": "point",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
}
}
]
// массив слоев // id слоя, целое число // название слоя, строка // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою
GET /layers/{layerId}
Структура запроса:
GET /layers/136?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"order": 4,
"layer": {
"id": 29,
"name": "Сервисные объекты 1",
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"info": {
"id": 29,
"typeName": "workspace:servisncye_obcaektcy_1_vw",
"style": "servisncye_obcaektcy_1_1622626848248_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"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,
"name": "naimenovan",
"rusName": "Наименование",
"order": 1,
"title": true,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "String",
"htmlEscape": true,
"popupView": false,
"reference": false
},...],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"customFields": null,
"geometryType": "multipoint",
"dataStoreName": "activemap_store",
"isKosmosnimok": false,
"layerType": "vector",
"access": {
"read": true,
"edit": true,
"write": true,
"serviceObjects": true
},
"cluster": null
}
},
"groupId": 2
}
// объект // порядковый номер в списке, целое число // объект слоя // id слоя, целое число // русское название слоя, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // данные о наличии медиа информации, объект // есть ли медиа информация, логическое // поле для первичного ключа, строка // есть ли фотографии, логическое // можно ли редактировать фотографии, логическое // есть ли файлы, логическое // можно ли редактировать файлы, логическое // массив полей // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/редактировании объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип поля, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // дополнительные поля, строка // тип геометрии, строка // название хранилища данных, строка // является ли космоснимком, логическое // тип слоя, строка // права текущего пользователя на слой // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания // кластер, строка // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою, исключая данные о группе слоя
GET /layers/{layerId}/info
Структура запроса:
GET /layers/132/info?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"id": 29,
"name": "Сервисные объекты 1"
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"info": {
"id": 29,
"typeName": "workspace:servisncye_obcaektcy_1_vw",
"style": "servisncye_obcaektcy_1_1622626848248_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"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,
"name": "naimenovan",
"rusName": "Наименование",
"order": 1,
"title": true,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "String",
"htmlEscape": true,
"popupView": false,
"reference": false
},...],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"customFields": null,
"geometryType": "multipoint",
"dataStoreName": "activemap_store",
"isKosmosnimok": false,
"layerType": "vector",
"access": {
"read": true,
"edit": true,
"write": true,
"serviceObjects": true
},
"cluster": null
}
}
// объект слоя // id слоя, целое число // русское название слоя, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // данные о наличии медиа информации, объект // есть ли медиа информация, логическое // поле для первичного ключа, строка // есть ли фотографии, логическое // можно ли редактировать фотографии, логическое // есть ли файлы, логическое // можно ли редактировать файлы, логическое // массив полей // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/редактировании объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип поля, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // дополнительные поля, строка // тип геометрии, строка // название хранилища данных, строка // является ли космоснимком, логическое // тип слоя, строка // права текущего пользователя на слой // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование в качестве оъектов обслуживания // кластер, строка
Статус: 403 - у вас нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о слоях
Граница слоя
GET /layers/{layerId}/bbox
Структура запроса:
GET /layers/199/bbox?token=9c6333f651846cfc94feae0597b61224&apiVersion=2.0
layerId: id слоя
apiVersion: версия API, 2.0
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"minX": 49.053,
"maxX": 49.24,
"minY": 55.739,
"maxY": 55.863,
"projection": "EPSG:4326"
}
// минимальный x, вещественное число // минимальный y, вещественное число // максимальный x, вещественное число // максимальный y, вещественное число // код проекции, строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Метаданные слоя
GET /layers/{layerId}/metadata
Структура запроса:
GET /layers/179/metadata?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"metadata": {
"id": 179,
"owner": "Владелец",
"dataCreate": "2011.12.28 09.47",
"dataUpdate": "2011.12.28 09.47",
"itemsCount": 45,
"type": {
"id": 1,
"name": "Космоснимки",
"fieldList": [
{
"id": 1,
"name": "Облачность",
"order": 1,
"inTable": true,
"inTableName": "clouds",
"fieldType": {
"id": 2,
"name": "Облачность",
"control": "input_integer",
"geomType": null,
"library": false,
"libraryData": {}
},
"necessary": false
}]
},
"additionalFieldValues": [
{
"field": {
"id": 4,
"name": "name",
"order": 6,
"inTable": false,
"inTableName": null,
"fieldType": {
"id": 3,
"name": "целое число",
"control": "input_integer",
"geomType": null,
"library": false,
"libraryData": {}
},
"necessary": false
},
"value": "значение"
}
],
"tableData": {
"clouds": "45",
"tecy_777": null,
"sputnik_id": "1",
"data": "2011-12-14 00:00:00+04",
"test777": "1",
"geom": null,
"layer_id": "179",
"quicklook": "kosmosnimok2012_02_08_05_06_06.jpg"
}
}
}
// метадата, объект // id слоя, целое число // владелец слоя, строка // дата создания, строка // дата обновления, строка // количество объектов, целое число // тип метаданных, объект // id типа, целое число // название типа, строка // массив полей // объект поля // id поля, целое число // название, строка // порядок отображения, целое число // содержится ли значение в основной таблице, логическое // название поля в основной таблице // тип поля, объект // id типа, целое число // название типа, строка // управляющий элемент, который используется, строка // тип геометрии, строка // нужно ли искать значение поля в словаре, логическое // данные словаря, объект // является ли обязательным, логическое // массив дополнительных полей // объект // объект поля // id поля, // название, строка // порядок отображения, целое число // содержится ли значение в основной таблице, логическое // название поля в основной таблице // тип поля, объект // id: типа, целое число // название типа, строка // управляющий элемент, который используется, строка // тип геометрии, строка // нужно ли искать значение поля в словаре, логическое // данные словаря, объект // является ли обязательным, логическое // значение поля // основная таблица с данными, объект // поле таблицы и его значение
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Атрибуты слоя
GET /layers/{layerId}/attributes
Структура запроса:
GET /layers/199/attributes?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"attributes": [{
"name": "pole1",
"type": "string",
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null,
"geometryField": false
}],
"geometryType": "POLYGON",
"realGeometryType": "MULTIPOLYGON"
}
// массив атрибутов // название атрибута, строка // тип атрибута, строка // является ли полем с геометрией, логическое // является ссылкой на таблицу, логическое // id таблицы, целое число // id поля с первичным ключом в таблице, целое число // id поля с названием в таблице, целое число // тип геометрии (POINT, LINE, POLYGON), строка // реальный тип геометрии (POINT, MULTIPOINT, LINE, // MULTILINE, POLYGON, MULTIPOLYGON), строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Настойка слоя для использования в качестве объектов обслуживания
GET /layers/{layerId}/serviceobjects
Структура запроса:
GET /layers/136/serviceobjects?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1,
"layer": {
"id": 29,
"name": "servisncye_obcaektcy_1_vw"
},
"search_params": "size=10&default_operator=AND",
"search_field": "name",
"geo_field": "the_geom",
"sort": "name:asc",
"title_format": "{0} - {1}",
"title_fields": [
"name",
"count"
],
"fields": [
"name",
"count",
"category",
"color",
"the_geom.coordinates"
],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
},
{
"type": "Description",
"field_id": null,
"format": "{0}",
"fields": [
"category"
]
},
{
"type": "CustomField",
"field_id": 10,
"format": "{0}",
"fields": [
"color"
]
}
]
}
// объект // id настройки // слой // id слоя // английское название слоя // доп.параметры поиска (совестимость со старыми версиям) // поиск по атрибуту (совестимость со старыми версиям) // поле с геометрией (совестимость со старыми версиям) // атрибут и направление сортировки (совестимость со старыми версиям) // формат названия (совестимость со старыми версиям) // поля для формата названия (совестимость со старыми версиям) //все используемые атрибуты // соответствие атрибутов и полей задания // тип для заголова задания // формат // поля для формата // тип для описания задания // формат // поля для формата // тип для доп.полей задания // id доп.поля // формат // поля для формата
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Права на слой по умолчанию
GET /layers/{layerId}/defaultaccess
Структура запроса:
GET /layers/136/defaultaccess?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 9,
"layerId": 27,
"roleId": 10,
"roleName": "Администратор организации",
"allRoles": false,
"organizationId": null,
"organizationName": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"write": false,
"serviceObjects": true,
}
]
// правила // правило // id правила // id слоя // id роли // название роли // для всех ролей, логическое // id организации // название организации // для всех органзаций, логическое // true - для клиентских органзаций, false - для не клиентских // на чтение // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на использование слоя в качестве оъектов обслуживания
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
GET /layers/{layerId}/style
Структура запроса:
GET /layers/199/style?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"style": {
"styleName": "Polygon",
"geoCss": "*{\n mark: symbol(\"circle\");\n}",
"base": false,
"simple": true,
"styleSld": " "
}
}
// объект стиля // название стиля, строка // css стиля, строка // является ли базовым, логическое // является ли простым, логическое // sld стиля, строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стили слоев
GET /layers/styles/base
Структура запроса:
GET /layers/styles/base?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"styleName": "point",
"geoCss": "* {\n mark-opacity: 1.0;\n}",
"base": true,
"simple": false,
"styleSld": ""
},...]
// название стиля, строка // css стиля, строка // является ли базовым, логическое // является ли простым, логическое // sld стиля, строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Тип геометрии стиля слоя
GET /layers/styles/base/{geomType}
Структура запроса:
GET /layers/styles/base/point?token=9c6333f651846cfc94feae0597b61224
geomType: тип геометрии
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"style":{
"styleName": "point",
"geoCss": "* {\n mark-opacity: 1.0;\n}",
"base": true,
"simple": false,
"styleSld": ""
}
}
// информация о стиле, объект // название стиля, строка // css стиля, строка // является ли базовым, логическое // является ли простым, логическое // sld стиля, строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Тип геометрии слоя
GET /layers/{layerId}/geometrytype
Структура запроса:
GET /layers/25/geometrytype?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"geometryType":"MULTIPOLYGON"
}
// название типа геометрии
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Кластеры слоя
GET /layers/{layerId}/cluster
Структура запроса:
GET /layers/25/cluster?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 11179,
"turned": true,
"maxZoom": 16,
"parameters": [{
"id": 401,
"objectsCount": 0,
"icon": {
"id": 99,
"name": "red",
"width": 73,
"height": 72
},
"labelColor": "ffffff"
}]
}
// id слоя, целое число // кластеризация включена, логическое // максимальный зум для кластеризации, целое число // параметры, массив // id, целое число // количество объектов, целое число // иконка, объект // id иконки, целое число // название иконки, строка // ширина, целое число // высота, целое число // цвет подписи, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Индексация слоя
GET /layers/{layerId}/reindex
Структура запроса:
GET /layers/34/reindex?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
withCreating: пересоздание индекса полностью (с удалением)
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Принят запрос на индексацию
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка слоя из файла
Загрузка файла
POST /layers/upload
Структура запроса:
POST /layers/upload?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.zip"]
}
// статус ответа // uuid загруженного файла
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного файла слоя
GET /layers/upload/{uuid}
Структура запроса:
GET /layers/upload/p18hps8iga1pi81aot89i18d81of87.zip?token=9c6333f651846cfc94feae0597b61224
uuid: uuid файла слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"uuid": "0e3e43d0-fabc-42a7-87ce-2dd6fba1eefb.zip",
"type": "vector",
"geometryType": "multipolygon",
"withProjection": true,
"attributes": [{
"name": "the_geom",
"rusName": "the_geom",
"type": "MultiPolygon",
"isGeometryField": true
}]
}
// uuid файла в кеше, строка // тип слоя (vector или raster), строка // тип геометрии, строка // есть ли в архиве файл с геоетрией, логическое // массив атрибутов // название атрибута, строка // русское название атрибута, строка // тип, строка // является ли полем с геометрией, логическое
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл слоя не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отправка параметров для загруженного файла слоя
POST /layers/uploaded
Структура запроса:
POST /layers/uploaded?token=9c6333f651846cfc94feae0597b61224&apiVersion=2.0
token: ключ доступа
token: версия REST API 2.0
Пример запроса:
Формат: json
{
"name": "Novyi-sloy",
"title": "Новый слой",
"groupId": 1053,
"dataStoreId": 12,
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"forUpsert": true,
"forSearch": true,
"view": true,
"htmlEscape": true,
"popupView": false,
"order": 1
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"service": "WFS",
"fileName": "p18hps8iga1pi81aot89i18d81of87.zip",
"isEditable": true,
"isStyleEditable": true,
"styles": {
"isBase": true
},
"projection": "EPSG:4326",
"customFields": null
}
// английское название слоя, строка // заголовок, строка // id группы, целое число // id хранилища, целое число // данные об атрибутах, массив // английское название, строка // русское название, строка // тип, строка // показывать ли поле при создании/изменении объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // показывать ли поле, логическое // экранировать ли html, логическое // показывать ли во всплавающем окошке, логическое // порядок, целое число // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // сервис получения данных WMS/WFS, строка // uuid загруженного слоя, строка // является редактируемым, логическое // можно редактировать стиль, логическое // стили, объект // является ли стиль простым, логическое // проекция, строка // дополнительные поля, объект
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, логическое // url для запроса, строка // размер тайла, целое число // название поля с геометрией, строка // является ли редактируемым, логическое // можно ли редактировать стиль, логическое // id создателя слоя, целое число // является ли слой системным, логическое // код для системного слоя, строка // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, логическое // показывать ли поле, логическое // показывать ли поле при создании/редактировании объекта, логическое // будет ли использоваться поле для поиска по объектам слоя, логическое // тип, строка // экранировать ли html, логическое // показывать ли во всплывающем окошке, логическое // является ли ссылкой на таблицу, логическое // заголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // подзаголовок слоя // формат заголовка, строка // атрибуты, которые входят в заголовок, массив строк // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка // название хранилища, строка // тип слоя, строка
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка слоя через WS
Необходится подключиться по WebSocket
wss://site.domain/ws?token=&lang=&apiVersion=2.0
token: ключ доступа
lang: 2-х значное обозначение языка: ru, en ит.д.
apiVersion: версия REST API 2.0
Получение параметров для загруженного файла слоя через WS
Команда через WebSocket:
{
"command":"GET_UPLOADED_LAYER_INFO",
"data":{
"fileUuid":"{uuid}"
}
}
uuid: uuid файла слоя
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"command": "HTTP_RESPONSE",
"data": {
"status": 200,
"body": null,
"json": {
"uuid": "0fa244a6-aa1c-44c9-b878-075e149817c2.zip",
"type": "vector",
"geometryType": "multipoint",
"withProjection": true,
"attributes": [{
"name": "the_geom",
"rusName": "the_geom",
"type": "MultiPoint",
"isGeometryField": true
}]
}
}
}
// uuid файла в кеше, строка // тип слоя (vector или raster), строка // тип геометрии, строка // есть ли в архиве файл с геоетрией, логическое // массив атрибутов // название атрибута, строка // русское название атрибута, строка // тип, строка // является ли полем с геометрией, логическое
Статус: 403 - нет доступа к загрузке слоев
Формат: json
Содержит описание ошибки
Статус: 404 - файл слоя не загружен
Формат: json
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: json
Содержит описание ошибки
Отправка параметров для загруженного файла слоя через WS
Команда через WebSocket:
{
"command":"CREATE_LAYER_FROM_FILE",
"data":{
"name": "Novyi-sloy",
"title": "Новый слой",
"groupId": 1053,
"dataStoreId": 12,
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"forUpsert": true,
"forSearch": true,
"view": true,
"htmlEscape": true,
"popupView": false,
"order": 1
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"service": "WFS",
"fileName": "p18hps8iga1pi81aot89i18d81of87.zip",
"isEditable": true,
"isStyleEditable": true,
"styles": {
"isBase": true
},
"projection": "EPSG:4326",
"customFields": null
}
}
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"command": "HTTP_RESPONSE",
"data": {
"status": 200,
"body": null,
"json": {
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false,
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
}
}
Статус: 403 - нет доступа к загрузке слоев
Формат: json
Содержит описание ошибки
Статус: 404 - файл не загружен
Формат: json
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: json
Содержит описание ошибки
Права доступа к слоям
Список прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses
Структура запроса:
GET /layers/accesses?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"userId": 60,
"layerId": 41,
"groupId": 3,
"organizationId": 1,
"layerOrder": 9,
"groupOrder": 6,
"read": true,
"write": false,
"edit": true,
"serviceObjects": true,
"isEditable": true,
"uniqueId": 257698053339,
"layerName": "Название слоя",
"groupName": "Название группы",
"userLogin": "login",
"userName": "ФИО пользователя"
},...]
// id пользователя, целое число // id слоя, целое число // id группы, целое число // id организации, целое число // порядковый номер слоя, целое число // порядковый номер группы, целое число // доступен к просмотру, логическое // доступен к управлению, логическое // доступен к редактированию, логическое // доступен в качестве оъектов обслуживания, логическое // редактируемый, логическое // уникальный id, целое число // название слоя, строка // название группы, строка // пользовательский логин, строка // имя пользователя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses/count
Структура запроса:
GET /layers/accesses/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
342
// количество прав доступа
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права доступа
Доступно только для пользователей с правами администратора
POST /layers/accesses
Структура запроса:
POST /layers/accesses?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"layerId": 36,
"userId": 60,
"read": true,
"write": false,
"edit": false,
"serviceObjects": true
}
// id слоя, целое число // id пользователя, целое число // право на просмотр, логическое // право на управление, логическое // право на редактирование, логическое // право на использование в качестве оъектов обслуживания, логическое
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"read": true,
"write": false,
"edit": false,
"serviceObjects": true,
"userName": "Пользователь",
"groupId": 4,
"userId": 110,
"layerName": "Слой"
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав доступа
Доступно только для пользователей с правами администратора
GET /layers/accesses.xlsx
Структура запроса:
GET /layers/accesses.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Хранилища слоев
GET /layers/datastores
Структура запроса:
GET /layers/datastores?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 213,
"name": "for_delete",
"host": "178.213.247.170",
"port": 5432,
"database": "ssc",
"login": "julia",
"isInfrastructure": false,
"schema": "rcku"
},...]
// id хранилища, целое число // наименование хранилища, строка // хост, строка // порт, целое число // название базы данных, строка // логин пользователя, строка // из инфраструктуры, булевое поле // название схемы, с которой работает хранилище, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группы слоев
Список групп слоев
GET /groups
Структура запроса:
GET /groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Группа 1",
"order": "1"
}],
"mapExtent": {
"id": 123,
"name": "default",
"extent": {
"minX": 37.1722412109375,
"minY": 55.64272408255231,
"maxX": 38.13354492187501,
"maxY": 55.93612557332707,
"projection": "EPSG:4326"
},
"main": true
}
}
// массив объектов с информацией по группе // id группы, целое число // название группы, строка // порядковый номер группы в списке, целое число // бласть видимости карты, объект
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers
Структура запроса:
GET /groups/withLayers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"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
}
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группы доступные пользователю
GET /users/groups
GET /users/groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Группа слоя",
"order": 1
},...
]}
// группы пользователей, массив // id группы, целое число // название группы, строка // порядковый номер группы, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск списка групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers?name=Группа?token=9c6333f651846cfc94feae0597b61224
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"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
}
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая краткую информацию по принадлежащим им слоям
GET /groups/shortdata/withLayers
Структура запроса:
GET /groups/shortdata/withLayers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"owner": 6,
"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
}
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по названию
GET /groups
Структура запроса:
GET /groups?name=Пункт?token=9c6333f651846cfc94feae0597b61224
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа 1",
"order": "1"
}],
"mapExtent": {
"id": 123,
"name": "default",
"extent": {
"minX": 37.1722412109375,
"minY": 55.64272408255231,
"maxX": 38.13354492187501,
"maxY": 55.93612557332707,
"projection": "EPSG:4326"
},
"main": true
}
}
// массив объектов с информацией по группе // id группы, целое число // название группы, строка // порядковый номер группы в списке, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по id
GET /groups/{groupId}
Структура запроса:
GET /groups/32?token=9c6333f651846cfc94feae0597b61224
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Базовые слои",
"order": 1
}
}
// группа, объект // id группы, целое число // название группы, строка // порядок группы в списке
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группа слоев, включая полную информацию по принадлежащим ей слоям
GET /groups/{groupId}/withLayers
Структура запроса:
GET /groups/32/withLayers?token=9c6333f651846cfc94feae0597b61224
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"group": {
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"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
}, ... ]
}
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание группы слоя
Доступно только для пользователей с правами администратора
POST /layers/groups
Структура запроса:
POST /layers/groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Название новой группы слоев"
}
// название группы, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 32,
"name": "Населенные пункты",
"order": "1"
}
// id группы, целое число // название группы, строка // порядковый номер группы, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сохранение порядка группы слоя
Доступно только для пользователей с правами администратора
POST /layers/groups/ordering
Структура запроса:
POST /layers/groups/ordering?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"orderings": [{
"id": 1093,
"order": 1
},
{
"id": 413,
"order": 2
},…]
}
// порядок групп слоев, объект // id группы, целое число // порядок группы, целое число // id группы, целое число // порядок группы, целое число
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение группы слоя
Доступно только для пользователей с правами администратора
PUT /layers/groups/{id}
Структура запроса:
PUT /layers/groups/27?token=9c6333f651846cfc94feae0597b61224
id: id группы слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 27,
"name": "Новое название группы слоя",
"order": 1
}
// id группы, целое число // название группы, строка // порядковый номер группы, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление группы слоя
Доступно только для пользователей с правами администратора
DELETE /layers/groups/{id}
Структура запроса:
DELETE /layers/groups/27?token=9c6333f651846cfc94feae0597b61224
id: id группы слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт групп слоя
Доступно только для пользователей с правами администратора
GET /layers/groups.xlsx
Структура запроса:
GET /layers/groups.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Права организаций на группы
Список прав на группы
Доступно только для пользователей с правами администратора
GET /organizations/groups
GET /organizations/groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"organizationId": 1,
"groupId": 13,
"organizationName": "Министерство по ЧС",
"groupName": "Название группы",
"read": false
},...]
// id организации, целое число // id группы, целое число // название организации, строка // название группы, строка // доступна к просмотру, логическое
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав на группы
Доступно только для пользователей с правами администратора
GET /organizations/groups/count
GET /organizations/groups/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
56
// количество прав на группы, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права на группу
Доступно только для пользователей с правами администратора
POST /organizations/groups
POST /organizations/groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"groupId": 13,
"organizationId": 1,
"read": true
}
// id группы, целое число // id организации, целое число // доступна к просмотру, логическое
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Право на группу добавлено
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав на группу
Доступно только для пользователей с правами администратора
GET /organizations/groups.xlsx
GET /organizations/groups.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Объекты слоя
Создание объекта слоя
POST /layers/{layerId}/features
Структура запроса:
POST /layers/145/features?apiVersion=2.0&token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
apiVersion: версия API, 2.0
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [
{
"name": "naimenovan",
"type": "string",
"value": "Мытищи"
},
{
"name": "int",
"type": "int",
"value": "1"
},
{
"name": "float",
"type": "double",
"value": "2.2"
},
{
"name": "datetime",
"type": "dateTime",
"value": 1623158460000
},
{
"name": "date",
"type": "date",
"value": "06.08.2021"
},
{
"name": "date_timestamp",
"type": "date",
"value": 1626739200000
},
{
"name": "logicheskoe",
"type": "boolean",
"value": true
}
],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,60.58696734225869]]
},
"files": [{
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc",
"name": "gloreg.doc"
}],
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg",
"name": "Lighthouse.jpg"
}]
}
// список атрибутов // название атрибута, строка // тип атрибута, строка // значение, строка // объект геометрии // тип геометрии, строка // координаты, массив // список файлов // uuid загруженного файла, строка // название файла, строка // веб-страницы // адрес, строка // описание, строка // размер // ширина, целое число // высота, целое число // список фотографий // uuid загруженной фотографии, строка // название фотографии, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список возможных значений для полей, связанных с таблицами
GET /layers/{layerId}/fields/{attrName}/values
GET /layers/29/fields/_RealValue_spravochnik/values?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
attrName: название атрибута в БД
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"refValue": 1,
"refValueName": "Название1"
}
]
// массив возможных значениц // объект // id значения // заголовок
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение объекта слоя
PUT /layers/{layerId}/features/{featureId}
Структура запроса:
PUT /layers/154/features/3?apiVersion=2.0&token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
featureId: id объекта
apiVersion: версия API, 2.0
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [
{
"name": "naimenovan",
"type": "string",
"value": "Мытищи1"
},
{
"name": "int",
"type": "int",
"value": "1"
},
{
"name": "float",
"type": "double",
"value": "2.2"
},
{
"name": "datetime",
"type": "dateTime",
"value": 1623158460000
},
{
"name": "date",
"type": "date",
"value": "06.08.2021"
},
{
"name": "date_timestamp",
"type": "date",
"value": 1626739200000
},
{
"name": "logicheskoe",
"type": "boolean",
"value": true
}
],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,60.58696734225869]]
},
"removeGeometry": false,
"files": [{
"uuid": "b3tbt4tuj46n4yummmm1n8jg7.doc",
"name": "gloreg.doc"
}],
"removeFiles": [5,6],
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница1",
"size": {
"width": 640,
"height": 360
}
}],
"removePages": [1],
"photos": [{
"uuid": "4345hyhukujh4ju5uyyjk7u5jgg124a5.jpg",
"name": "Lighthouse.jpg"
}],
"removePhotos": [4]
}
// список атрибутов // название атрибута, строка // тип атрибута, строка // значение, строка // объект геометрии // тип геометрии, строка // координаты, массив // нужно ли удалить геометрию объекта // список новых файлов // uuid загруженного файла, строка // название файла, строка // массив id удаляемых файлов // новые веб-страницы // адрес, строка // описание, строка // размер // ширина, целое число // высота, целое число // массив id удаляемых веб-страниц // список новых фотографий // uuid загруженной фотографии, строка // название фотографии, строка // массив id удаляемых фотографий
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей объекта слоя
Пример с прикреплением только что загруженного изображения и удалением старого. Доступны любые комбинации полей из PUT запроса
PATCH /layers/{layerId}/features/{featureId}
Структура запроса:
PATCH /layers/154/features/3?apiVersion=2.0&token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
featureId: id объекта
apiVersion: версия API, 2.0
token: ключ доступа
Пример запроса:
Формат: json
{
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "new_photo.png"
}],
"removePhotos": [5,6]
}
// список фотографий // uuid фотографии, строка // название фотографии, строка // массив id удаляемых фотографий
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление объекта слоя
DELETE /layers/{layerId}/features/{featureId}
Структура запроса:
DELETE /layers/154/features/3?token=9c6333f651846cfc94feae0597b61224
layerId: id удаляемого слоя
featureId: id объекта
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов
GET /layers/:layerId/features
Структура запроса:
GET /layers/212/features?token=9c6333f651846cfc94feae0597b61224&pageNumber=1&limit=50&orderBy=nazvanie&asc=false
&cql_filter=(strToLowerCase(nazvanie) like '%гагарина%')
layerId: id слоя
pageNumber: страница для пагинации данных
limit: ограничение на количество данных в ответе
orderBy: поле, по которому нужно сортировать данные. По умолчанию по первичному ключу
asc: если true, то сортировка в порядке возрастания, если false - то наоборот.По умолчанию asc=true
cql_filter: фильтр для данных в формате CQL
ids: id объектов через запятую, по которым необходимо получить информацию
notIds: id объектов через запятую, которые необходимо исключить из выборки
requestAttributes: список атрибутов слоя через запятую, которые необходимо получить в ответе. Для поля с первичным ключом можно иcпользовать алиас fid
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"features": [
{
"fid": 25,
"nazvanie": "гагарина",
"kategoriya": "105",
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],
[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}",
}, ...
],
"layerId": 212,
"geomFieldName": "the_geom"
}
// список объектов // информация по объекту // id слоя // название поля с геометрией
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество объектов
GET /layers/:layerId/features/count
GET /layers/25/features/count?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
cql_filter: фильтр для данных в формате CQL
ids: id объектов через запятую, по которым необходимо получить информацию
notIds: id объектов через запятую, которые необходимо исключить из выборки
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
237
// количество объектов в слое
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Объект слоя
GET /layers/{layerId}/features/{featureId}
Структура запроса:
GET /layers/212/features/34?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
featureId: id объекта
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"feature": {
"fid": 25,
"nazvanie": "гагарина",
"uchastok": null,
"data_paspo": null,
"kategoriya": "105",
"protyazhen": null,
"podryadchi": null,
"rajon": null,
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],
[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}",
"sys_geom_center": "{\"type\":\"Point\",
\"coordinates\":[37.617635,55.755814]}"
},
"layerId": 212,
"geomFieldName": "the_geom"
}
// объект // информация по объекту // точка, являющаяся цетром геометрии объекта (системное поле) // id слоя // название поля с геометрией
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов в точке
POST /layers/feature
Структура запроса:
POST /layers/feature?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"layersId": [198,245,345],
"size": {
"x": 1920,
"y": 778
},
"extent": {
"southWest": {
"lat": 55.488191455802244,
"lon": 47.94158935546874
},
"northEast": {
"lat": 56.08889483995169,
"lon": 50.57830810546875
}
},
"point": {
"x": 859,
"y": 364
},
"filters": {
198: "(strToLowerCase(srnaimenovanie) like '%савиновский%')"
}
}
// массив id слоев, где будет осуществляться поиск // размер области видимости в пикселях, объект // пикселей по оси x, целое число // пикселей по оси y, целое число // область видимости карты, объект // координаты нижней левой точки на карте в градусах, объект // широта нижней левой точки, вещественное число // долгота нижней левой точки, вещественное число // координаты верхней правой точки на карте в градусах, объект // широта верхней правой точки, вещественное число // долгота верхней правой точки, вещественное число // точка центра области видимости в пикселях, объект // координата х, целое число // координата y, целое число // CQL-фильтры для слоев, не обязательно поле // id слоя и соответствующий ему фильтр
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"data": {
"kziokzn:vamin_kioski_p_vw": {
"features": [{
"fid": "141",
"zayavit": "ОАО Вамин Татарстан",
"syyinfo":"Есть",
"srnaimenovanie":"Ново-савиновский",
"geom":"",
"nomerdoma":"47",
"sunaimenovanie":"10летОктября[П, Ст.Победилово]",
"syinfo":"Есть",
"svinfo":"Существующий"
}
],
"layerId":198,
"geomFieldName":null
}
}
}
// объект найденных данных // английское название слоя, где найдены объекты // массив объектов // первичный ключ объекта, строка // поля объекта и их значения // id слоя // поле геометрии либо null
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список объектов в области
POST /layers/feature/bbox
Структура запроса:
POST /layers/feature/bbox?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"layersId": [198,234,23],
"srs": "EPSG:4326",
"extent": {
"southWest": {
"lon": 49.04296875,
"lat": 55.754940702479146
},
"northEast": {
"lon": 49.299774169921875,
"lat": 55.90457539720638
}
},
"filters": {
198: "(strToLowerCase(srnaimenovanie) like '%савиновский%')"
}
}
// массив id слоев, где будет осуществляться поиск // проекция запроса, строка // область поиска, объект // координаты нижней левой точки области, объект // широта нижней левой точки, вещественное число // долгота нижней левой точки, вещественное число // координаты верхней правой точки области, объект // широта верхней правой точки, вещественное число // долгота верхней правой точки, вещественное число // CQL-фильтры для слоев, не обязательно поле // id слоя и соответствующий ему фильтр
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"data": {
"kziokzn:vamin_kioski_p_vw": {
"features": [
{
"fid": "141",
"zayavit": "ОАО Вамин Татарстан",
"syyinfo":"Есть",
"srnaimenovanie":"Ново-савиновский",
"geom":" ",
"nomerdoma":"47",
"sunaimenovanie":"10летОктября[П, Ст.Победилово]",
"syinfo":"Есть",
"svinfo":"Существующий"
}
],
"layerId":198,
"geomFieldName":null
}
}
}
// объект найденных данных // английское название слоя, где найдены объекты, строка // массив объектов // первичный ключ объекта, строка // поля объекта и их значения // id слоя, целое число // поле геометрии, строка
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной ко всем объектам слоя
GET /layers/eis/{layerId}
Структура запроса:
GET /layers/eis/198?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"layerObjectId": 1,
"files": [
{
"objectId": "1",
"url": "/layers/eis/7392/1/photo/1",
"fileName": "Chrysanthemum.jpg",
"type": {
"id": 3,
"name": "photo"
},
"asUrl": false,
"width": null,
"height": null
}
]
}
]
// массив объектов с медиафайлами // объект слоя // id объекта слоя // массив найденных прикрепленных файлов // id файла // путь к файлу // название файла // тип файла // id типа, // название типа, может быть photo, video, audio, file, page // представлен ли файл как ссылка // ширина окна, для страниц (type=page) // высота окна, для страниц (type=page)
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной к объекту слоя
GET /layers/eis/{layerId}/{objectId}
Структура запроса:
GET /layers/eis/198/141?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
objectId: значение первичного ключа объекта
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"files": [
{
"url": "/layers/eis/198/141/photo/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 3,
"name": "photo"
},
"asUrl": false,
"width": null,
"height": null
},
{
"url": "/layers/eis/198/141/file/247",
"fileName": "Чистопольская,47.JPG",
"type": {
"id": 4,
"name": "file"
},
"asUrl": false,
"width": null,
"height": null
}
]
}
// массив найденных прикрепленных файлов // путь к файлу // название файла // тип файла // id типа, // название типа, может быть photo, video, audio, file,page // представлен ли файл как ссылка, булевое поле // ширина окна, для страниц (type=page) // высота окна, для страниц (type=page) // адрес, строка // название файла, строка // тип, объект // id типа, целое число // название, строка // представлен ли файл как ссылка, булевое поле // ширина, целое число // высота, целое число
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение медиа файла, прикрепленного к объекту слоя
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}
Структура запроса:
GET /layers/eis/198/141/photo/247?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
token: ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}
Структура запроса:
GET /layers/eis/198/141/photo/247/100?token=9c6333f651846cfc94feae0597b61224
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=9c6333f651846cfc94feae0597b61224
layerId: id слоя
objectId: первичный ключ объекта
photoId: первичный ключ фотографии
height: высота для масштабирования
width: ширина для масштабирования
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отображение прикрепленного файла
GET /layers/eis/{layerId}/{objectId}/{fileType}/{fileId}
Структура запроса:
GET /layers/eis/198/141/file/247?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
objectId: первичный ключ объекта
fileType: тип файла: photo, video, audio, file
fileId: первичный ключ файла
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: зависит от типа отдаваемого файла
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Иконки
Список иконок
Доступно только для пользователей с правами администратора
GET /dictionary/icons
Структура запроса:
GET /dictionary/icons?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 99,
"name": "red",
"width": 73,
"ownerOrganizationId":null,
"height": 72
},...]
// id иконки, целое число // название иконки, строка // ширина, целое число // id организации, пользователь которой добавил иконку (если null - пользователь не из организации) // высота, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список редактируемых иконок
Доступно только для пользователей с правами администратора
GET /dictionary/icons/editable
Структура запроса:
GET /dictionary/icons/editable?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 99,
"name": "red",
"width": 73,
"ownerOrganizationId": null,
"height": 72
},...]
// id иконки, целое число // название иконки, строка // ширина, целое число // id организации, пользователь которой добавил иконку (если null - пользователь не из организации) // высота, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание иконки
Доступно только для пользователей с правами администратора
POST /dictionary/icons
Структура запроса:
POST /dictionary/icons?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"name": "Человек",
"uuid": "p1996qif28t071sb22us1hd93lon.png"
}
// название иконки, строка // uuid иконки, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 51,
"name": "Справочник",
"width": 1258,
"height": 750
}
// id иконки, целое число // название иконки, строка // ширина, целое число // высота, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение иконки
Доступно только для пользователей с правами администратора
PUT /dictionary/icons/{id}
Структура запроса:
PUT /dictionary/icons/51?token=9c6333f651846cfc94feae0597b61224
id: id иконки
token: ключ доступа
Пример запроса:
{
"id": 51,
"name": "Новое название иконки",
"uuid": "p1996qif28t071sb22us1hd93lon.png"
}
// id иконки, целое число // название справочника, строка // uuid иконки, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 51,
"name": "Новое название иконки",
"width": 1258,
"height": 750
}
// id иконки, целое число // название иконки, строка // ширина, целое число // высота, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление иконки
Доступно только для пользователей с правами администратора
DELETE /dictionary/icons/{id}
Структура запроса:
DELETE /dictionary/icons/51?token=9c6333f651846cfc94feae0597b61224
id: id иконки
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Просмотр изображения иконки
GET /dictionary/icons/{id}/view
Структура запроса:
GET /dictionary/icons/23/view?token=9c6333f651846cfc94feae0597b61224
id: id иконки
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Изображение
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Геокодирование
Поиск по адресу (POST запрос)
POST /geocoding
Структура запроса:
POST /geocoding?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"layersId": ["10","12","26"],
"query": "Казань",
"bbox": {
"southWest": {
"lon 46,
"lat": 55
},
"northEast": {
"lon": 48,
"lat": 57
}
},
"onlylayers": true
}
// массив id слоев, где также надо осуществлять поиск // строка запроса // область запроса // левая нижняя точка // долгота точки, вещественное число // широта точки, вещественное число // правая верхняя точка // долгота точки, вещественное число // широта точки, вещественное число // есть true, то осуществлять поиск только по слоям
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"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,
"sys_org_id": null
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, вещественное число // широта точки, вещественное число // расшифровка адреса, объект // системное поле id cluster, если присутствует в атрибутах слоя // системное поле id организации, если присутствует в атрибутах слоя
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по адресу (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?query=Казань&layersId=12,23,345,56&bbox=46,55,48,57&onlylayers=true
&token=9c6333f651846cfc94feae0597b61224
query: строка запроса
layersId: id слоев, где также надо осуществлять поиск, через запятую
bbox: область запроса
onlylayers: есть true, то осуществлять поиск только по слоям
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"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,
"sys_org_id": null
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой // расшифровка адреса, объект // системное поле id cluster, если присутствует в атрибутах слоя // системное поле id организации, если присутствует в атрибутах слоя
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по координатам (POST запрос)
POST /geocoding
Структура запроса:
POST /geocoding?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
{
"layersId": ["10","12","26"],
"point": {
"lon": 50.69091796875,
"lat": 55.33851784425634
},
"zoom": 14,
"onlylayers": true
}
// массив id слоев, где также надо осуществлять поиск // точка на карты, объект // долгота точки, вещественное число // широта точки, вещественное число // уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса. // есть true, то осуществлять поиск только по слоям
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"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,
"sys_org_id": null
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, вещественное число // широта точки, вещественное число // расшифровка адреса, объект // системное поле id cluster, если присутствует в атрибутах слоя // системное поле id организации, если присутствует в атрибутах слоя
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по координатам (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?lon=55.45&lat=49.67&layersId=12,23,345,56&zoom=14&onlylayers=true
&token=9c6333f651846cfc94feae0597b61224
lon: долгота точки, вещественное число
lat: широта точки, вещественное число
layersId: id слоев, где также надо осуществлять поиск, через запятую
zoom: уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса
onlylayers: есть true, то осуществлять поиск только по слоям
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"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,
"sys_org_id": 4
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой // расшифровка адреса, объект // системное поле id cluster, если присутствует в атрибутах слоя // системное поле id организации, если присутствует в атрибутах слоя
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка
Загрузка файлов
POST /upload/cache
Структура запроса:
POST /upload/cache?photo=true&token=9c6333f651846cfc94feae0597b61224
photo: необязательный параметр, если загружается фотография
token: ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87"]
}
// статус ответа // uuid загруженного файла
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение файла
GET /upload/cache/{uuid}
Структура запроса:
GET /upload/cache/p18hps8iga1pi81aot89i18d81of87?token=9c6333f651846cfc94feae0597b61224
uuid: uuid загруженного файла
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Загруженный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение фотографии
GET /upload/cache/{uuid}/{width}/{height}.{extension}
Структура запроса:
GET /upload/cache/p18hps8iga1pi81aot89i18d81of87/500/800.jpg?token=9c6333f651846cfc94feae0597b61224&stretch=true
uuid: uuid загруженного файла
width: ширина фотографии
height: высота фотографии
extension: разрешение фотографии
token: ключ доступа
stretch: растянуть фотографию по размерам (необязательный)
crop: обрезать фотографии по размерам (необязательный)
Ответ:
Статус: 200 - успешное выполнение
Загруженный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка больших файлов
POST /upload/disc
Структура запроса:
POST /upload/disc?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.zip"]
}
// статус ответа // uuid загруженного файла
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отчеты
Список отчетов
GET /jreports
Структура запроса:
GET /jreports?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
editable: дополнительный параметр, возвращает список отчетов, которые могут быть отредактированы
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 1556,
"name": "Отчет с разными параметрам",
"description": "отчет для тестирования",
"preferredFormat": "xlsx",
"dataStoreId": 1
"parameters": [
{
"id": 1505,
"description": "с",
"type": "date",
"name": "in_date_from",
"lib": false,
"listPossibleValues": null,
"defaultValue": "d+7200",
"hint": "начало периода",
"required": true,
"period": true
},
{
"id": 1506,
"description": "по",
"type": "date",
"name": "in_date_till",
"lib": false,
"listPossibleValues": null,
"defaultValue": "n+0",
"hint": "конец периода",
"required": true,
"period": false
},
{
"id": 1507,
"description": "Список из БД",
"type": "int",
"name": "remote",
"lib": true,
"listPossibleValues": null,
"defaultValue": null,
"hint": "возможные значения для этого поля необходимо запросить отдельно",
"required": true,
"period": false
},
{
"id": 1774,
"description": "Вещественное число",
"type": "num",
"name": "double",
"lib": false,
"listPossibleValues": null,
"defaultValue": "4.6",
"hint": "",
"required": false,
"period": false
},
{
"id": 1772,
"description": "Логическое поле",
"type": "boolean",
"name": "boolean",
"lib": false,
"listPossibleValues": null,
"defaultValue": "true",
"hint": "значения да или нет",
"required": false,
"period": false
},
{
"id": 1775,
"description": "Целое число",
"type": "int",
"name": "Integer",
"lib": false,
"listPossibleValues": null,
"defaultValue": "18",
"hint": "обычное целое число",
"required": false,
"period": false
},
{
"id": 1776,
"description": "Списко строк",
"type": "list",
"name": "list",
"lib": false,
"listPossibleValues": {
"possibleValues": [
"один",
"два",
"три",
"четыре ",
"пять"
]
},
"defaultValue": "три",
"hint": "списко из строк",
"required": false,
"period": false
}
]
}, ...
]
// id отчета, целое число // название отчета, строка // описание отчета, строка // предпочтительный формат выгрузки отчета (pdf,xsls,doc,rtf), строка // id хранилища, целое число // список параметров, массив // id параметра, целое число // название параметра, строка // тип, строка // английское название, строка // получать ли возможные значения дополнительно из БД (для типа "int" может быть true), логическое // список возможных значений (для типа "list" не пустое), массив строк // значение по умолчанию, строка // описание параметра, строка // является ли поле обязательным, логическое // сцепить ли со следующим в период (может быть true только для типа "date" или "date_without_time" и если дальше следует параметр того же типа),
Тип параметров:
- date: дата со временем (timestamp). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- date_without_time: дата (date). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- int: целое число (integer). Если lib=true, то необходимо запросить список доступных значений
- num: вещественное число (double)
- boolean: логическое (boolean)
- text: текст (string)
- list: список текстовых значений (list). Список конечен и заранее сформирован
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение отчета по id
GET /jreports/{reportId}
Структура запроса:
GET /jreports/705?token=9c6333f651846cfc94feae0597b61224
reportId: id отчета
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1556,
"name": "Отчет с разными параметрам",
"description": "отчет для тестирования",
"preferredFormat": "xlsx",
"dataStoreId": 1
"parameters": [
{
"id": 1505,
"description": "с",
"type": "date",
"name": "in_date_from",
"lib": false,
"listPossibleValues": null,
"defaultValue": "d+7200",
"hint": "начало периода",
"sourceQuery": null,
"required": true,
"period": true
},
{
"id": 1506,
"description": "по",
"type": "date",
"name": "in_date_till",
"lib": false,
"listPossibleValues": null,
"defaultValue": "n+0",
"hint": "конец периода",
"sourceQuery": null,
"required": true,
"period": false
},
{
"id": 1507,
"description": "Список из БД",
"type": "int",
"name": "remote",
"lib": true,
"listPossibleValues": null,
"defaultValue": null,
"sourceQuery": "SELECT id,name from users.organizations Limit 20 order by id DESC",
"hint": "возможные значения для этого поля необходимо запросить отдельно",
"required": true,
"period": false
},
{
"id": 1774,
"description": "Вещественное число",
"type": "num",
"name": "double",
"lib": false,
"listPossibleValues": null,
"defaultValue": "4.6",
"hint": "",
"sourceQuery": null,
"required": false,
"period": false
},
{
"id": 1772,
"description": "Логическое поле",
"type": "boolean",
"name": "boolean",
"lib": false,
"listPossibleValues": null,
"defaultValue": "true",
"hint": "значения да или нет",
"sourceQuery": null,
"required": false,
"period": false
},
{
"id": 1775,
"description": "Целое число",
"type": "int",
"name": "Integer",
"lib": false,
"listPossibleValues": null,
"defaultValue": "18",
"hint": "обычное целое число",
"sourceQuery": null,
"required": false,
"period": false
},
{
"id": 1776,
"description": "Списко строк",
"type": "list",
"name": "list",
"lib": false,
"listPossibleValues": {
"possibleValues": [
"один",
"два",
"три",
"четыре ",
"пять"
]
},
"defaultValue": "три",
"hint": "списко из строк",
"sourceQuery": null,
"required": false,
"period": false
}
]
}
// id отчета, целое число // название отчета, строка // описание отчета, строка // предпочтительный формат выгрузки отчета (pdf,xsls,doc,rtf), строка // id хранилища, целое число // список параметров, массив // id параметра, целое число // название параметра, строка // тип, строка // английское название, строка // получать ли возможные значения дополнительно из БД (для типа "int" может быть true), логическое // список возможных значений (для типа "list" не пустое), массив строк // значение по умолчанию, строка // описание параметра, строка // SQL-строка, строка // является ли поле обязательным, логическое // сцепить ли со следующим в период (может быть true только для типа "date" или "date_without_time" и если дальше следует параметр того же типа),
Тип параметров
- date: дата со временем (timestamp). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- date_without_time: дата (date). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- int: целое число (integer). Если lib=true, то необходимо запросить список доступных значений
- num: вещественное число (double)
- boolean: логическое (boolean)
- text: текст (string)
- list: список текстовых значений (list). Список конечен и заранее сформирован
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Доступные значения параметра из БД
GET /jreports/{reportId}/parameters/{parameterId}/values
Запрос доступен для параметров типа int со свойством lib=true
Структура запроса:
GET /jreports/705/parameters/234/values?token=9c6333f651846cfc94feae0597b61224eyhrwtuwtejetkeyuketkeyuk
reportId: id отчета
parameterId: id параметра
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 1,
"name": "Градосервис",
},...
]
// id значения, целое число // название значения, строка
Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Права по умолчанию на отчет
GET /jreports/{reportId}/defaultaccess
Структура запроса:
GET /jreports/705/defaultaccess?token=9c6333f651846cfc94feae0597b61224eyhrwtuwtejetkeyuketkeyuk
reportId: id отчета
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"id": 7,
"roleId": null,
"roleName": null
"allRoles": null,
"organizationId": 5,
"organizationName": "ОРГ А",
"allOrganizations": null,
"publicOrganizations": null,
"read": true,
"edit": true
}, ...
]
// id значения, целое число // id роли, целое число // название роли, если выбрана, строка // для всех ролей, логическое // id организации, целое число // название организации, если выбрана, строка // для всех организаций, логическое // true - для клиентских органзаций, false - для не клиентских // права на чтение, логическое // права на изменение, логическое
Загрузка отчета
POST /jreports/upload
Структура запроса:
POST /jreports/upload?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: multipart/form-data
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary0ohUI5iAAtfIX8A0
Формат отчета: jrxml
FormData(
name: p1dsrje76s18emv27mff1kb0aof3.jrxml,
file: (binary)
)
// поле name в форме, уникальное для файла // xml отчета, созданного через специализированное ПО
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p198coiisr1o0c1a15vmu1knv5iv3.jrxml"]
}
// статус ответа // uuid загруженного файла
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного отчета
GET /jreports/uploaded/{uuid}
Структура запроса:
GET /jreports/uploaded/p198coiisr1o0c1a15vmu1knv5iv3.jrxml?token=9c6333f651846cfc94feae0597b61224
uuid: uuid файла отчета
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"name":"in_integer",
"type":"int"
}]
// название, строка // тип, строка
Доступные тип параметров
- date: дата со временем (timestamp). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- date_without_time: дата (date). Если два поля идут подряд, то из можно связать в период (period=true). defaultValue состоит из следующего выражения (n|d|w|m|y)(+|-)секунды, например n-7200 или w+14400, где n-сейчас, d-начало суток, w-начало текущей недели, m-начало текущего месяца, y-начало текущего года
- int: целое число (integer). Если lib=true, то необходимо запросить список доступных значений
- num: вещественное число (double)
- boolean: логическое (boolean)
- text: текст (string)
- list: список текстовых значений (list). Список конечен и заранее сформирован
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание только что загруженного отчета
POST /jreports
Структура запроса:
POST /jreports?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Новый отчет",
"xmlFile": "p1dsrk8a6rb2a1os14c1qjg3f73.jrxml",
"description": "создаем новый отчет",
"preferredFormat": "xlsx",
"dataStoreId": "1",
"parameters": [
{
"name": "timestamp",
"type": "date",
"description": "дата и время",
"required": true,
"hint": "описание параметра",
"period": false,
"defaultValue": "d+7200",
"lib": false,
"sourceQuery": null
},...
],
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false
}
]
}
// название отчета, строка // uuid файла отчета (приходит при загрузке файла отчета), строка // описание отчета, строка // предпочитаемый формат создания отчета (pdf,xlsx,doc,rtf), строка // id хранилища данных для отчета, целое число // параметры // английское название параметра, строка // тип параметра, строка // название параметра, строка // обязателен ли параметр, логическое число // описание параметра, строка // сцепить со следующим в период (для дат), логическое число // значение по умолчанию, строка // берутся ли значения из БД (для типа int), логическое число // SQL-запрос (для типа int), строка // права на слой по умолчанию // правило // id роли // для всех ролей, логическое // id организации // для всех организаций, логическое // true - для клиентских органзаций, false - для не клиентских // право на чтение // право на изменение
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1,
"name": "Новый отчет",
"description": "создаем новый отчет",
"preferredFormat": "xlsx",
"dataStoreId": 1,
"parameters": [
{
"id": 1,
"description": "дата и время",
"type": "date",
"name": "timestamp",
"lib": false,
"listPossibleValues": null,
"defaultValue": "d+7200",
"hint": "описание параметра",
"required": true,
"period": false
},...
]
}
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение отчета
PUT /jreports/{reportId}
Структура запроса:
PUT /jreports/604?token=9c6333f651846cfc94feae0597b61224
reportId: id отчета
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Измененный отчет",
"description": "меняем отчет",
"preferredFormat": "pdf",
"dataStoreId": "1",
"parameters": [
{
"name": "timestamp",
"type": "date",
"description": "дата и время",
"required": true,
"hint": "описание параметра",
"period": false,
"defaultValue": "d+7200",
"lib": false,
"sourceQuery": null
},...
],
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false
}
]
}
// название отчета, строка // описание отчета, строка // предпочитаемый формат создания отчета (pdf,xlsx,doc,rtf), строка // id хранилища данных для отчета, целое число // параметры // английское название параметра, строка // тип параметра, строка // название параметра, строка // обязателен ли параметр, логическое число // описание параметра, строка // сцепить со следующим в период (для дат), логическое число // значение по умолчанию, строка // берутся ли значения из БД (для типа int), логическое число // SQL-запрос (для типа int), строка // права на слой по умолчанию // правило // id роли // для всех ролей, логическое // id организации // для всех организаций, логическое // true - для клиентских органзаций, false - для не клиентских // право на чтение // право на изменение
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1,
"name": "Измененный отчет",
"description": "меняем отчет",
"preferredFormat": "pdf",
"dataStoreId": 1,
"parameters": [
{
"id": 1,
"description": "дата и время",
"type": "date",
"name": "timestamp",
"lib": false,
"listPossibleValues": null,
"defaultValue": "d+7200",
"hint": "описание параметра",
"required": true,
"period": false
},...
]
}
// статус ответа
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление отчета
DELETE /jreports/{id}
Структура запроса:
DELETE /jreports/1?token=mbs90lon2adathutyrkrytkirtuiltuoltuiol8
id: id удаляемого отчета
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true,
"id":1
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Генерация отчетов
Для генерации отчетов необходится подключиться по WebSocket
wss://site.domain/ws?token=&lang=
token: ключ доступа
lang: 2-х значное обозначение языка: ru, en ит.д.
Подключение к сервису отчетов
Команда через WebSocket:
{
"command": "CONNECT_TO_REPORTS",
"data": {}
}
В ответ от сервера приходит текущее состояние по отчетам для данного пользователя:
Формат: json
{
"command": "CONNECTED_TO_REPORTS",
"data": [
{
"status": 1,
"name": "1573130284987PdkVAHCv.pdf",
"alias": "Отчет 'Качество работы по заданиям'
от 07.11.2019 15:38:39 (с 08.10.19 15:37 по 07.11.19 15:37) (PDF)",
"expire": 1573133885018,
"format": "pdf",
"taskId": "4yh2441-c201-4e7d-8bfe-0e65b800764b",
"reportId": 1393,
"size": 2945,
"requestDate": 1576840864165
},
{
"status": 2,
"name": null,
"alias": "Отчет \"Качество работы по заданиям\" принят в обработку",
"expire": null,
"format": "xlsx",
"taskId": "rf55441-c201-4e7d-8bfe-0e65b800764b",
"reportId": 1393,
"size": null,
"requestDate": 1576840354165
},
{
"status": 4,
"name": null,
"alias": "Отчет \"Качество работы по заданиям\" отправлен в очередь на создание....",
"expire": null,
"format": "pdf",
"taskId": "d81a2441-c201-4e7d-8bfe-0e65b800764b",
"reportId": 1393,
"size": null,
"requestDate": 1576840874165
}
]
}
// статус отчета, целое число (0,1,2,3,4) // название сгенерированного файла, строка // название отчета или описание стадии, строка // время жизни сгенерированного отчета или null, миллисекунды // формат сгенерированного отчета (pdf,xsls,doc,rtf), строка // id процесса, целое число // id отчета, целое число // размер созданного отчета в байтах или null, целое число // когда был запрошен отчет, миллисекунды
Статусы:
- 1 - отчет сгенерирован
- 0 - отчет сгенерирован с ошибкой
- 2 - отчет принят в обработку, начался процесс генерации
- 3 - отчет отменен
- 4 - отчет ожидает в очереди
Генерация отчета
Команда через WebSocket:
{
"command":"GET_REPORT",
"data":{
"reportId":"275",
"fileType":"pdf",
"params":[
{
"name":"in_date_from",
"type":"date",
"value":1570538220000
},
{
"name":"in_date_till",
"type":"date",
"value":1573130220000
}
]
}
}
Ответ от сервера, когда отчет попал в очередь на создание:
Формат: json
{
"command": "REPORT_IN_QUEUE",
"data": {
"status": 4,
"name": null,
"alias": "Отчет \"Качество работы по заданиям\"
отправлен в очередь на создание....",
"expire": null,
"format": null,
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19",
"reportId": 1553,
"size": null,
"requestDate": 1576848878881
}
}
// статус отчета // название сгенерированного файла = null // описание стадии // время жизни сгенерированного отчета = null // формат сгенерированного отчета = null // id процесса // id отчета // размер созданного отчета в байтах = null // когда был запрошен отчет
Ответ от сервера, когда отчет начал генерироваться:
Формат: json
{
"command": "REPORT_IN_WORK",
"data": {
"status": 2,
"name": null,
"alias": "Отчет \"Качество работы по заданиям\"
принят в обработку",
"expire": null,
"format": null,
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19",
"reportId": 1553,
"size": null,
"requestDate": 1576848878881
}
}
// статус отчета // название сгенерированного файла = null // описание стадии // время жизни сгенерированного отчета = null // формат сгенерированного отчета = null // id процесса // id отчета // размер созданного отчета в байтах = null // когда был запрошен отчет
Ответ от сервера, когда отчет создался:
Формат: json
{
"command": "REPORT_READY",
"data": {
"status": 1,
"name": "1576848882094nXFhclQq.pdf",
"alias": "Отчет 'Качество работы по заданиям'
от 20.12.2019 16:34:42 (PDF)",
"expire": 1576852482121,
"format": "pdf",
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19",
"reportId": 1553,
"size": 26224,
"requestDate": 1576848878881
}
}
// статус отчета // название сгенерированного файла // название отчета // время жизни сгенерированного отчета // формат сгенерированного отчета // id процесса // id отчета // размер созданного отчета в байтах // когда был запрошен отчет
Ответ от сервера, когда отчет не может создаться, так как выходит ошибка:
Формат: json
{
"command": "REPORT_READY",
"data": {
"status": 0,
"name": null,
"alias": "Ошибка при создании отчета:
\"Error executing SQL statement for: Отчет по зоне.\"",
"expire": null,
"format": null,
"taskId": "64f8ac17-7f56-4a1e-bf55-c3b577daa00a",
"reportId": 1556,
"size": null,
"requestDate": 1576849192090
}
}
// статус отчета // название сгенерированного файла = null // название ошибки // время жизни сгенерированного отчета = null // формат сгенерированного отчета = null // id процесса // id отчета // размер созданного отчета в байтах = null // когда был запрошен отчет
Прерывание генерации отчета
Команда через WebSocket:
{
"command":"CANCEL_REPORT",
"data":{
"taskId":"32cffab4-5a19-4c21-8fbf-eb1f70e9d936"
}
}
В ответ придет:
Формат: json
{
"command": "REPORT_CANCELED",
"data": {
"status": 3,
"name": null,
"alias": "Отчет отменен",
"expire": null,
"format": null,
"taskId": "cbcc5c18-e40c-4652-818f-fea94fa4e582",
"reportId": 1393,
"size": null,
"requestDate": 1576849490230
}
}
// статус отчета // название сгенерированного файла = null // название состояния // время жизни сгенерированного отчета = null // формат сгенерированного отчета = null // id процесса // id отчета // размер созданного отчета в байтах = null // когда был запрошен отчет
Удаление сгенерированного отчета
Команда через WebSocket:
{
"command": "DELETE_REPORT",
"data": {
"taskId": "99d5486e-a533-4022-9894-e40ed0980534"
}
}
В ответ придет:
Формат: json
{
"command": "REPORT_DELETED",
"data": {
"taskId": "99d5486e-a533-4022-9894-e40ed0980534",
"reportId": 1557
}
}
// id процесса // id отчета
В случае ошибки:
Формат: json
{
"command": "REPORT_DELETED_ERROR",
"data": {
"text": "Недостаточно прав для данной операции"
"taskId": "99d5486e-a533-4022-9894-e40ed0980534",
"reportId": 1557
}
}
// описание ошибки // id процесса // id отчета
Поддержка соединения
Команда через WebSocket:
{
"command":"PING",
"data": null
}
В ответ придет:
Формат: json
{
"command":"PONG",
"data": null
}
Скачивание сгенерированного отчета
GET /jreports/file/{:name}
Структура запроса:
GET /jreports/file/1576848882094nXFhclQq.pdf?token=9c6333f651846cfc94feae0597b61224
name: название созданного файла
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: массив байтов
Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Список сгенерированных отчетов
GET /jreports/saved
Структура запроса:
GET /jreports/saved?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
id: 54458,
taskId: "bdbee471-6c6c-4416-bcfd-f27209c3ac19",
name: "1576848882094nXFhclQq.pdf",
alias: "Отчет 'Отчет с разными параметрами'
от 20.12.2019 16:34:42 (PDF)",
format: {
value: "pdf",
contentType: "application/pdf"
},
createDate: 1576848882097,
requestDate: 1576848878881,
size: 26224,
reportId: 1553
}
]
// id файла, целое число // id процесса, строка // название файла отчета // название отчета // формат // contentType // дата создания // когда очтет был запрошен // размер файла в байтах // id отчета
Удаление сгенерированного отчета
GET /jreports/saved/{:id}
Структура запроса:
GET /jreports/saved/54458?token=9c6333f651846cfc94feae0597b61224
id: id файла
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 54461
}
Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Состояние отчетов в очереди
GET /jreports/generation
Структура запроса:
GET /jreports/generation?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"status": 2,
"name": null,
"alias": "Отчет \"Качество работы по заданиям\"
принят в обработку",
"expire": null,
"format": "pdf",
"taskId": "d81a2441-c201-4e7d-8bfe-0e65b800764b",
"reportId": 1393,
"size": null,
"requestDate": 1576840354165
},
{
"status": 4,
"name": null,
"alias": "Отчет \"Качество работы по заданиям новый\"
отправлен в очередь на создание....",
"expire": null,
"format": "pdf",
"taskId": "d81a2441-c201-4e7d-8bfe-0e65b800764b",
"reportId": 1394,
"size": null,
"requestDate": 1576840357645
}
]
// статус отчета, целое число (2,4) // название сгенерированного файла = null, строка // описание стадии, строка // время жизни сгенерированного отчета = null, миллисекунды // формат сгенерированного отчета = null, строка // id процесса, целое число // id отчета, целое число // размер созданного отчета в байтах = null, целое число // когда был запрошен отчет, миллисекунды
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отмена генерации отчета
DELETE /jreports/generation?taskId=&token=
Структура запроса:
DELETE /jreports/generation?taskId=d81a2441-c201-4e7d-8bfe-0e65b800764b&token=9c6333f651846cfc94feae0597b61224
taskId: id процесса
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
Содержит описание
Статус: 400 - во время операции произошла ошибка
Формат: text/plain
Содержит описание ошибки
Права на отчеты
Список прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses
Структура запроса:
GET /jreports/accesses?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[{
"userId": 60,
"reportId": 25,
"reportName": "Отчет",
"userLogin": "login",
"userName": "ФИО пользователя",
"read": false
},...]
// id пользователя, целое число // id отчета, целое число // название отчета, строка // логин пользователя, строка // имя пользователя, строка // доступен просмотр, булевое поле
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses/count
Структура запроса:
GET /jreports/accesses/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: text/plain
367
// количество прав на отчеты
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права на отчеты
Доступно только для пользователей с правами администратора
POST /jreports/accesses
Структура запроса:
POST /jreports/accesses?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"read": true,
"reportId": 368,
"userId": 58
}
// право на просмотр, булевое поле // id отчета, целое число // id пользователя, целое число
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"read": true,
"userName": "Имя пользователя",
"userId": 58,
"reportId": 368,
"reportName": "Новый отчет"
}
// право на просмотр, булевое поле // имя пользователя, строка // id пользователя, целое число // id отчета, целое число // название отчета, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сохранение порядка
POST /jreports/ordering
Структура запроса:
POST /jreports/ordering?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"orderings": [{
"id": 748,
"order": 1
},
{
"id": 747,
"order": 2
},…]
}
// порядок групп слоев, объект // id группы, целое число // порядок группы, целое число // id группы, целое число // порядок группы, целое число
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Порядок сохранен
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses.xlsx
Структура запроса:
GET /jreports/accesses.xlsx?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки