- Пользователи
- Список пользователей
- Количество пользователей
- Информация о пользователе
- Роли пользователей
- Создание пользователя
- Изменение пользователя
- Удаление пользователя
- Экспорт пользователя
- Управление пользователями (вариант 2)
- Управление типами пользователей
- Управление метками пользователей
- Мониторинг пользователей
- Датчики пользователей
Главная страница
Базовые слои
GET /baselayers
Пример запроса:
GET /baselayers
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"schemas": [{
"name": "Карта России",
"className": "newClass()",
"order": 0,
"code": 307516729
},...],
"spaces": [{
"name": "Космоснимки Роскосмос",
"className": "new Class2()",
"order": 0,
"code": 500344996
},...]
}
Статус: 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"
}
}
}
// текущее положение карты, объект // id, целое число // название, строка // расположение, объект // минимальное значение X, вещественное число // минимальное значение Y, вещественное число // максимальное значение X, вещественное число // максимальное значение Y, вещественное число // проекция
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущая версия
GET /version
Пример запроса:
GET /version
Ответ:
Статус: 200 - успешное выполнение
Формат: json
3.29.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
[{
"code": "en",
"isCurrent": false
},
{
"code": "ru",
"isCurrent": true
}]
// язык, строка // установлен ли сейчас, булевое поле // язык, строка // установлен ли сейчас, булевое поле
Статус: 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": "hwk12poi3f1",
"refreshToken": "mbs90lon2a8",
"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=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"authenticated": "true",
"user": {
"id": 1,
"login": "admin",
"name": "Администратор ведомств",
"info": {
"id": 1,
"address": "Страна, город, улица",
"phone": "+79655905559",
"fax": "5173443",
"email": "",
"inn": 253565322124,
"kpp": null,
"passport": "",
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"organizationId": null,
"roleId": 8,
"role": {
"id": 8,
"title": "Администратор ведомств"
}
}
}
// true, если пользователь авторизован, иначе false, булевое поле // данные о пользователе, если он авторизован, объект // id пользователя, целое число // логин пользователя // имя пользователя, строка // данные о пользователе, объект // id пользователя, целое число // адрес пользователя, строка // телефон, строка // факс, строка // электронная почта, строка // ИНН, целое число // КПП, целое число // паспортные данные, строка // банковские данные, строка // банк КПП, целое число // банк БИК, целое число // банковский счет, строка // id организации, целое число // id группы прав, целое число // информация о группе прав, объект // id группы прав, целое число // название группы прав, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущий пользователь
GET /users/current
Структура запроса:
GET /users/current?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"user": {
"id": 61,
"login": "admin",
"name": "Администратор ведомств",
"info": {
"id": 61,
"address": "Страна, город, улица",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"passport": "",
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"organizationId": null,
"roleId": 8,
"role": {
"id": 8,
"title": "Администратор ведомств"
}
}
}
// данные о текущем пользователе, объект // id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // дополнительная информация о пользователе // id пользователя, целое число // адрес пользователя, строка // телефон, строка // факс, строка // электронная почта, строка // ИНН, целое число // КПП, целое число // паспортные данные, строка // банковские реквизиты, строка // банк КПП, строка // банк БИК, строка // банковский счет, строка // id организации, целое число // id группы прав, целое число // информация о группе прав, объект // id группы прав, целое число // название, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход
GET /logout
Структура запроса:
GET /logout?token=9c6333f651846cfc94feae0597b61224
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",
"workgroupId": 3,
"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 организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, булевое поле // ссылка для регистрации в организации, строка // id рабочей группы, целое число // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация об организации
GET /organizations/{id}
GET /organizations/1?token=mbs90l3464252u7356678476843on2a8
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 3,
"name": "Клиент 1",
"logo": "logo_3.png",
"client": true,
"mapinformerDeeplink": "https://mapinformer.geo4.me/Yy3keapLj3",
"workgroupId": 3,
"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 организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, булевое поле // ссылка для регистрации в организации, строка // id рабочей группы, целое число // дополнительная информация, объект // адрес, строка // телефон, строка // факс, строка // email, строка // ИНН, целое число // КПП, целое число // банк, строка // КПП банка, целое число // БИК банка, целое число // кор.счет банка, строка // полное юридическое название организации // счет организации, строка // ФИО руководителя, строка // ФИО бухгалтера, строка // максимальное количество пользователей в организации, целое число // всего пользователей в организации // id хранилища данных, целое число // id кластера, целое число // название кластера, строка // границы карты, объект // минимальный Х, вещественное число // минимальный Y, вещественное число // максимальный Х, вещественное число // максимальный Y, вещественное число // проекция, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Описание организации
GET /organizations/{id}/about
GET /organizations/1?token=mbs90l3464252u7356678476843on2a8
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",
"workgroupId": 3,
"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 организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, булевое поле // ссылка для регистрации в организации, строка // 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",
"workgroupId": 3,
"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 организации, целое число // название организации, строка // файл логотипа, строка // клиентская ли организация, булевое поле // ссылка для регистрации в организации, строка // 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": {
"id": 108,
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
},...]
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, булевое поле // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, булевое поле // id организации, целое число // id роли пользователя, целое число // id типа пользователя, целое число // информация о пользователе, объект // id пользователя, целое число // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество пользователей
GET /users/count
GET /users/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
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": {
"id": 108,
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, булевое поле // id основной организации, целое число // название основной организации, строка // все организации, массив объектов // является ли организация основной, булевое поле // id организации, целое число // id роли пользователя, целое число // id типа пользователя, целое число // информация о пользователе, объект // id пользователя, целое число // адрес, строка // телефон, строка // электронная почта, строка // паспортные данные, строка // время последнего обновления аватара, миллисекунды // метки, массив объектов // id метки, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Роли пользователей
Доступно только для пользователей с правами администратора
GET /users/roles
GET /users/roles?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
[
{
"title": "Пользователь организации",
"id": 1
},
{
"title": "Администратор организации",
"id": 2
},...
]
// название роли, строка // id роли, целое число // название роли, строка // 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": {
"id": 108,
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, булевое поле // 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"
}
// 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": {
"id": 108,
"address": "",
"phone": "",
"email": "",
"passport": ""
},
"avatarUpdateDate": 1609362406957,
"tags": [
{
"id": 43
},...
]
}
// id пользователя, целое число // логин пользователя, строка // ФИО пользователя, строка // включен ли мониторинг, булевое поле // 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
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": null,
"isTitle": null,
"title": null,
"isView": true,
"view": true,
"order": null
},...]
}
// тип геометрии, строка // название таблицы, строка // русское название таблицы, строка // стили, объект // название стиля, строка // geocss стиль, строка // базовый, булевое поле // простой, булевое поле // 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"
},
"isEditable": true,
"fields": {
"id": 250,
"name": "Field",
"nameRu": "Поле",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
},
"groupId": 12
}]
}
// массив слоев // порядковый номер в списке, целое число // объект слоя // id слоя, целое число // название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // является ли редактируемым, булевое поле // объект полей // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество слоев
GET /layers/count?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
237
}
// количество слоев
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание слоя
POST /layers
Структура запроса:
POST /layers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"rusName": "Атрибут",
"name": "attribute",
"type": "string",
"isTitle": false,
"isView": true
}],
"customFields": {
"field_1": {
"field_id": 41,
"value": "1"
},
},
"geometryType": "point",
"groupId": 1053,
"dataStoreId": 12,
"fromFile": false,
"isEditable": true,
"layerType": "vector",
"name": "Novyi-sloy",
"styles": {
"isBase": true
},
"title": "Новый слой"
}
// данные об атрибутах, массив // русское название, строка // английское название, строка // тип, строка // является ли заголовком, булевое поле // показывать ли поле, булевое поле // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // тип геометрии, строка // id группы, целое число // id хранилища, целое число // из файла, булевое поле // является редактируемым, булевое поле // тип слоя, строка // английское название слоя, строка // стили, объект // является ли стиль простым, булевое поле // заголовок, строка
Примечание:
В зависимости от выбранного типа геометрии в "styles" могут передаваться следующие параметры:
- isBase - базовый стиль (булевое поле)
- isSymple - простой стиль (булевое поле)
- style - расширенный стиль (строка - описывается geocss)
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms"
},
"isEditable": true,
"fields": [{
"id": 3452,
"name": "parameter",
"nameRu": "parameter",
"order": 1,
"title": false,
"view": true,
"type": "string"
}],
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // является ли редактируемым, булевое поле // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка // название хранилища, строка // тип слоя, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение слоя
PUT /layers/{layerId}
Структура запроса:
PUT /layers/365?token=9c6333f651846cfc94feae0597b61224
layerId: id изменяемого слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "nomer",
"rusName": "NOMER",
"type": "Long",
"isGeometryField": false,
"visible": null,
"view": true
},…],
"customFields": {
"field": {
"field_id": 501,
"value": ""
},
},
"dataStoreId": "21",
"fileName": "p19bmqvgl6101t1996124718ckqp4v.zip",
"fromFile": true,
"geometryType": "polygon",
"groupId": 1053,
"isEditable": true,
"layerType": "vector",
"name": "sloj_sloj",
"styles": {
"isBase": false,
"isSimple": true,
"style": "*{fill:#0000FF;}"
},
"title": "Слой слой",
"withProjection": true
}
// данные об атрибутах, массив // русское название, строка // английское название, строка // тип, строка // является геометрией, булевое поле // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // id хранилища, строка // название файла, строка // из файла, булевое поле // тип геометрии, строка // id группы, целое число // является редактируемым, булевое поле // тип слоя, строка // название слоя, строка // стили, объект // является ли стиль базовым, булевое поле // является ли стиль простым, булевое поле // geocss стиль // заголовок, строка // с проекцией, булевое поле
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 365,
"name": "Название слоя",
"info": {
"id": 365,
"typeName": "test:nazvanie_sloya_21399556133349_vw",
"style": "nazvanie_sloya_21399556133349style",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs"
},
"isEditable": true,
"fields": [{
"id": 5972,
"name": "pole1",
"nameRu": "Атрибут_1",
"order": 1,
"title": true,
"view": true,
"type": "string"
},],
"dataStoreName": "ssc_inf",
"layerType": "vector",
"groupId": 117,
"dataStoreId": 21,
"order": 1,
"geometryType": "multipoint"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // является ли редактируемым, булевое поле // информация об атрибутах, массив // id атрибута, целое число // английское название атрибута, строка // русское название атрибута, строка // порядковый номер в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // название хранилища, строка // тип слоя, строка // id группы, целое число // id хранилища данных, целое число // порядковый номер в списке, целое число // тип геометрии, строка
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей слоя
PATCH /layers/{layerId}
Структура запроса:
PATCH /layers/1413?token=9c6333f651846cfc94feae0597b61224
layerId: id изменяемого слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"rusName": "Атрибут№1",
"name": "Attribute№1",
"type": "num",
"isTitle": false,
"isView": true
}],
"customFields": {
"newfield": {
"field_id": 501,
"value": "value"
},
},
"groupId": "1093",
"styles": {
"isBase": true
},
"title": "New layer name"
}
// данные об атрибутах, массив // русское название, строка // английское название, строка // тип, строка // является заголовком, булевое поле // дополнительные поля, объект // название дополнительного поля // id поля, целое число // значение поля, строка // id группы, целое число // стили, объект // является ли стиль базовым, булевое поле // заголовок, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1413,
"name": "New layer name",
"info": {
"id": 1413,
"typeName": "test:new_layer1419506827493_vw",
"style": "point",
"service": "WFS",
"poly": false,
"requestUrl": "/service/wfs"
},
"isEditable": true,
"fields": [{
"id": 15236,
"name": "newfield",
"nameRu": "Новое поле",
"order": 1,
"title": false,
"view": true,
"type": "string"
}],
"groupId": 1093,
"dataStoreId": 21,
"order": 6,
"geometryType": "multipoint",
"layerType": "vector",
"dataStoreName": "ssc_inf"
}
// id слоя, целое число // название слоя, строка // информация о слое, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // является ли редактируемым, булевое поле // информация о дополнительных полях, массив // id поля, целое число // английское название поля, строка // русское название поля, строка // порядковый номер в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // 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/{layerId}
Структура запроса:
GET /layers/136?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"order": 2,
"layer": {
"id": 136,
"name": "Тестовый слой",
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id"
}
},
"isEditable": true,
"fields": [
{
"id": 4423,
"name": "Field",
"nameRu": "Поле 1",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
],
"customFields": null,
"dataStoreName": "ssc_inf",
"layerType": "vector",
"isKosmosnimok": false,
"access": {
"edit": true,
"write": true,
"read": true
},
"geometryType": "multipolygon",
"cluster": null
},
"groupId": 14
}
}
// объект // порядковый номер в списке, целое число // объект слоя // id слоя, целое число // русское название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // данные о наличии медиа информации, объект // есть ли медиа информация, булевое поле // поле для первичного ключа, строка // является ли редактируемым, булевое поле // массив полей // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип поля, строка // дополнительные поля, строка // название хранилища данных, строка // тип слоя, строка // является ли космоснимком, булевое поле // права текущего пользователя на слой // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на чтение // тип геометрии, строка // кластер, строка // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация по слою, исключая данные о группе слоя
GET /layers/{layerId}/info
Структура запроса:
GET /layers/132/info?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"layer": {
"id": 136,
"name": "Тестовый слой",
"info": {
"id": 136,
"typeName": "test:test_p",
"style": "test_p_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"eisInfo": {
"hasEis": true,
"pkField": "id",
}
},
"isEditable": true,
"fields": [
{
"id": 4423,
"name": "vid",
"nameRu": "Поле1",
"order": 1,
"title": false,
"view": true,
"type": "string"
}
],
"customFields": null,
"dataStoreName": "ssc_inf",
"layerType": "vector",
"isKosmosnimok": false,
"access": {
"edit": true,
"write": true,
"read": true
},
"geometryType": "multipolygon",
"cluster": null
}
}
// объект слоя // id слоя, целое число // русское название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // данные о наличии медиа информации, объект // есть ли медиа информация, булевое поле // поле для первичного ключа, строка // является ли редактируемым, булевое поле // массив полей // id поля, целое число // английское название поля, строка // русское название поля, строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип поля, строка // дополнительные поля, строка // название хранилища данных, строка // тип слоя, строка // является ли космоснимком, булевое поле // права текущего пользователя на слой // на изменение/удаление слоя // на добавление/изменение/удаление объектов слоя // на чтение // тип геометрии, строка // кластер, строка
Статус: 403 - у вас нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о слоях
Граница слоя
GET /layers/{layerId}/bbox
Структура запроса:
GET /layers/199/bbox?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"boundingBox": {
"minx": "49.053",
"maxx": "49.24",
"miny": "55.739",
"maxy": "55.863",
"crs": "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",
"isGeometryField": false
}],
"geometryType": "POLYGON",
"realGeometryType": "MULTIPOLYGON"
}
// массив атрибутов // название атрибута, строка // тип атрибута, строка // является ли полем с геометрией, булевое поле // тип геометрии (POINT, LINE, POLYGON), строка // реальный тип геометрии (POINT, MULTIPOINT, LINE, // MULTILINE, POLYGON, MULTIPOLYGON), строка
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 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: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
Принят запрос на индексацию
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка слоя из файла
Загрузка файла
POST /layers/upload
Структура запроса:
POST /layers/upload?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.jpg"]
}
// статус ответа // uuid загруженного файла
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного файла слоя
GET /layers/upload/{uuid}
Структура запроса:
GET /layers/upload/p18hps8iga1pi81aot89i18d81of87.jpg?token=9c6333f651846cfc94feae0597b61224
uuid: uuid файла слоя
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"type": "vector",
"geometryType": "multipolygon",
"attributes": [{
"name": "the_geom",
"rusName": "the_geom",
"type": "MultiPolygon",
"isGeometryField": true
}]
}
// тип слоя (vector или raster), строка // тип геометрии, строка // массив атрибутов // название атрибута, строка // русское название атрибута, строка // тип, строка // является ли полем с геометрией, булевое поле
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл слоя не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отправка параметров для загруженного файла слоя
POST /layers/uploaded
Структура запроса:
POST /layers/uploaded?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "zagolovok",
"value": "Новый объект",
"id": 14736
}],
"files": [{
"uuid": "p198d8f2kflfs16fajt2135cnm17.txt",
"name": "Информация.txt"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[50.020751953125, 55.485079037526134]]
},
"pages": [{
"url": "http://url.com",
"description": "url",
"size": {
"width": 400,
"height": 400
}
}],
"photos": [{
"uuid": "p198d8evun1jnui37108u16ff1g4e5.png",
"name": "search.png"
}]
}
// список атрибутов // название атрибута, строка // значение атрибута, строка // id атрибута, целое число // список файлов // uuid файла, строка // название файла, строка // объект геометрии // тип геометрии, строка // координаты, массив // информация о ссылках // адрес ссылки, строка // описание ссылки, строка // размер, объект // ширина, целое число // высота, целое число // информация о фотографиях // uuid фотографии, строка // название фотографии, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"id": 8513,
"name": "Название",
"isEditable": true,
"fields": [{
"id": 7041,
"name": "nomer",
"nameRu": "Номер",
"order": 1,
"title": false,
"view": true
}],
"groupId": 112,
"info": {
"id": 8513,
"typeName": "test:awdaw1400500724038_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms"
},
"geometryType": "multipolygon",
"layerType": "vector",
"order": 126,
"dataStoreName": "ssc_inf"
}
// id слоя, целое число // название слоя, строка // является ли редактируемым, булевое поле // поля, массив // id поля, целое число // английское название поля, строка // русское название, строка // порядковый номер в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // id группы, целое число // информация по слою, объект // id слоя, целое число // английское название слоя, строка // тип сервиса, WFS/WMS // является ли полигоном, булевое поле // url для запроса, строка // тип геометрии, строка // тип слоя, строка // порядковый номер в списке, целое число // название хранилища, строка
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Права доступа к слоям
Список прав доступа
Доступно только для пользователей с правами администратора
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,
"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 - успешное выполнение
Формат: json
{
342
}
// количество прав доступа
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права доступа
Доступно только для пользователей с правами администратора
POST /layers/accesses
Структура запроса:
POST /layers/accesses?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"edit": false,
"layerId": 36,
"read": true,
"userId": 60,
"write": false
}
// право на редактирование, булевое поле // id слоя, целое число // право на просмотр, булевое поле // id пользователя, целое число // право на управление, булевое поле
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"read": true,
"write": false,
"edit": false,
"userId": 60,
"groupId": 18
}
// право на просмотр, булевое поле // право на управление, булевое поле // право на редактирование, булевое поле // id пользователя, целое число // id группы, целое число
Статус: 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"
}]
}
// массив объектов с информацией по группе // id группы, целое число // название группы, строка // порядковый номер группы в списке, целое число
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers
Структура запроса:
GET /groups/withLayers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Группы доступные пользователю
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": 32,
"name": "Новая группа",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Название слоя",
"info": {
"id": 10,
"typeName": "name",
"style": "style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "Field",
"nameRu": "Поле",
"order": 1,
"title": false,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}]
}
// массив групп // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // порядковый номер в списке, целое число // информация по слою, объект // id слоя, целое число // русское название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // является ли редактируемым, булевое поле // массив полей // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп, включая краткую информацию по принадлежащим им слоям
GET /groups/shortdata/withLayers
Структура запроса:
GET /groups/shortdata/withLayers?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа",
"order": "1",
"groupLayers": [{
"layer": {
"id": 10,
"name": "Слой",
"enabled": false,
"info": {
"id": 10,
"typeName": "test:test_layer",
"style": "test_layer_a",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
},
},
"order": 1,
"groupId": 32
}]
}]
}
// массив групп // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // информация по слою, объект // id слоя, целое число // русское название слоя, строка // включен ли слой по умолчанию, булевое поле // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // порядок слоя в списке, целое число // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по названию
GET /groups
Структура запроса:
GET /groups?name=Пункт?token=9c6333f651846cfc94feae0597b61224
name: слово/фраза, которая входит в название списка групп
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 32,
"name": "Группа 1",
"order": "1"
}]
}
// массив объектов с информацией по группе // 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": 32,
"name": "Населенные пункты",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Населенные пункты",
"info": {
"id": 10,
"typeName": "test:test_a",
"style": "style_test__a",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "test",
"nameRu": "Поле1",
"order": 1,
"title": true,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}
}
// группа, объект // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // порядковый номер, целое число // информация по слою, объект // id слоя, целое число // русское название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // id группы
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание группы слоя
Доступно только для пользователей с правами администратора
POST /layers/groups
Структура запроса:
POST /layers/groups?token=9c6333f651846cfc94feae0597b61224
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Название новой группы слоев"
}
// название группы, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"group": {
"id": 32,
"name": "Населенные пункты",
"order": "1",
"groupLayers": [{
"order": 1,
"layer": {
"id": 10,
"name": "Населенные пункты",
"info": {
"id": 10,
"typeName": "test:test_a",
"style": "style_test__a",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
},
"isEditable": true,
"fields": [{
"id": 4076,
"name": "test",
"nameRu": "Поле1",
"order": 1,
"title": true,
"view": true,
"type": "string"
}]
},
"groupId": 32
}]
}
}
// группа, объект // id группы, целое число // название группы, строка // порядковый номер группы, целое число // массив слоев // порядковый номер, целое число // информация по слою, объект // id слоя, целое число // русское название слоя, строка // информация по слою, объект // id слоя, целое число // английское название слоя, строка // название стиля, строка // тип сервиса, WMS/WFS // является ли полигоном, булевое поле // url для запроса, строка // массив полей // id поля, целое число // английское название поля, строка // русское название поля , строка // порядок следования в списке, целое число // является ли заголовком, булевое поле // показывать ли поле, булевое поле // тип, строка // 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 - успешное выполнение
Формат: json
{
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?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "Атрибут",
"value": "123456",
"id": 4677
}],
"files": [{
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc",
"name": "gloreg.doc"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,
60.58696734225869]]
},
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg",
"name": "Lighthouse.jpg"
}]
}
// список атрибутов // название атрибута, строка // значение, строка // id, целое число // список файлов // uuid загруженного файла, строка // название файла, строка // объект геометрии // тип геометрии, строка // координаты, массив // веб-страницы // адрес, строка // описание, строка // размер // ширина, целое число // высота, целое число // список фотографий // uuid загруженной фотографии, строка // название фотографии, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение объекта слоя
PUT /layers/{layerId}/features/{featureId}
Структура запроса:
PUT /layers/154/features/3?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
featureId: id объекта
token: ключ доступа
Пример запроса:
Формат: json
{
"addedFiles": ["1"],
"addedPhotos": ["2"],
"attributes": [{
"name": "Attribute",
"value": "12.52",
"id": 15236
}],
"files": [{
"uuid": "p19borhvav1kms1ks1vv62au1pfn7.xls",
"name": "cars.xls"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[48.768310546875, 56.69244163539978]]
},
"pages": [{
"url": "http://www.page.com",
"objectId": 661,
"description": "Описание страницы",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "add-object-line.png"
}]
}
// список из идентификаторов ранее загруженных файлов // список из идентификаторов ранее загруженных фотографий // список атрибутов // название атрибута, строка // значение, строка // id, целое число // список файлов // uuid файла, строка // название файла, строка // объект геометрии // тип геометрии, строка // координаты, массив // список веб-страниц // адрес страницы, строка // id объекта, целое число // описание страницы, строка // размер // ширина, целое число // высота, целое число // список фотографий // uuid фотографии, строка // название фотографии, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение конкретных полей объекта слоя
Пример с удалением всех ранее добавленных картинок и прикреплением только что загруженного изображения.
PATCH /layers/{layerId}/features/{featureId}
Структура запроса:
PATCH /layers/154/features/3?token=9c6333f651846cfc94feae0597b61224
layerId: id слоя
featureId: id объекта
token: ключ доступа
Пример запроса:
Формат: json
{
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "new_photo.png"
}]
}
// список фотографий // uuid фотографии, строка // название фотографии, строка
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"addedFiles": ["1"],
"addedPhotos": [],
"attributes": [{
"name": "Attribute",
"value": "12.52",
"id": 15236
}],
"files": [{
"uuid": "p19borhvav1kms1ks1vv62au1pfn7.xls",
"name": "cars.xls"
}],
"geometry": {
"type": "MultiPoint",
"coordinates": [[48.768310546875, 56.69244163539978]]
},
"pages": [{
"url": "http://www.page.com",
"objectId": 661,
"description": "Описание страницы",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png",
"name": "new_photo.png"
}]
}
// список из идентификаторов ранее загруженных файлов // список из идентификаторов ранее загруженных фотографий // список атрибутов // название атрибута, строка // значение, строка // id, целое число // список файлов // uuid файла, строка // название файла, строка // объект геометрии // тип геометрии, строка // координаты, массив // список веб-страниц // адрес страницы, строка // id объекта, целое число // описание страницы, строка // размер // ширина, целое число // высота, целое число // список фотографий // uuid фотографии, строка // название фотографии, строка
Статус: 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&cql_filter=(strToLowerCase(nazvanie) like '%гагарина%')
layerId: id слоя
pageNumber: страница для пагинации данных
limit: ограничение на количество данных в ответе
cql_filter: фильтр для данных в формате CQL
token: ключ доступа
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
features: [
{
fid: 25,
nazvanie: "гагарина",
uchastok: null,
data_paspo: null,
kategoriya: "105",
protyazhen: null,
podryadchi: null,
the_geom: "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}",
rajon: null
}, ...
],
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
}
}
// массив id слоев, где будет осуществляться поиск // размер области видимости в пикселях, объект // пикселей по оси x, целое число // пикселей по оси y, целое число // область видимости карты, объект // координаты нижней левой точки на карте в градусах, объект // широта нижней левой точки, вещественное число // долгота нижней левой точки, вещественное число // координаты верхней правой точки на карте в градусах, объект // широта верхней правой точки, вещественное число // долгота верхней правой точки, вещественное число // точка центра области видимости в пикселях, объект // координата х, целое число // координата y, целое число
Ответ:
Статус: 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
}
}
}
// массив 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
}
}
}
// массив id слоев, где также надо осуществлять поиск // строка запроса // область запроса // левая нижняя точка // долгота точки, вещественное число // широта точки, вещественное число // правая верхняя точка // долгота точки, вещественное число // широта точки, вещественное число
Ответ:
Статус: 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"
}
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, вещественное число // широта точки, вещественное число // расшифровка адреса, объект
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по адресу (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?query=Казань&layersId=12,23,345,56&bbox=46,55,48,57&token=9c6333f651846cfc94feae0597b61224
query: строка запроса
layersId: id слоев, где также надо осуществлять поиск, через запятую
bbox: область запроса
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"
}
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе 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
}
// массив id слоев, где также надо осуществлять поиск // точка на карты, объект // долгота точки, вещественное число // широта точки, вещественное число // уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса.
Ответ:
Статус: 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"
}
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, вещественное число // широта точки, вещественное число // расшифровка адреса, объект
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Поиск по координатам (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?lon=55.45&lat=49.67&layersId=12,23,345,56&zoom=14&token=9c6333f651846cfc94feae0597b61224
lon: долгота точки, вещественное число
lat: широта точки, вещественное число
layersId: id слоев, где также надо осуществлять поиск, через запятую
zoom: уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса
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"
}
}]
}, ...
]
// массив слоев, где найдены объекты // русское название, строка // английское название, строка // null - слой, для поиска по умолчанию, иначе id из массива // массив найденных объектов // первичный ключ, строка // заголовок, строка // зум для отображения, целое число // точка, объект // долгота точки, число с плавающей точкой // широта точки, число с плавающей точкой // расшифровка адреса, объект
Статус: 500 - ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка
Загрузка файлов
POST /fileload
Структура запроса:
POST /fileload?photo=true&token=9c6333f651846cfc94feae0597b61224
photo: необязательный параметр, если загружается фотография
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.jpg"]
}
// статус ответа // 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
Содержит описание ошибки
Загрузка отчета
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
},...
]
}
// название отчета, строка // uuid файла отчета (приходит при загрузке файла отчета), строка // описание отчета, строка // предпочитаемый формат создания отчета (pdf,xlsx,doc,rtf), строка // id хранилища данных для отчета, целое число // параметры // английское название параметра, строка // тип параметра, строка // название параметра, строка // обязателен ли параметр, логическое число // описание параметра, строка // сцепить со следующим в период (для дат), логическое число // значение по умолчанию, строка // берутся ли значения из БД (для типа int), логическое число // SQL-запрос (для типа int), строка
Ответ:
Статус: 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
},...
]
}
// название отчета, строка // описание отчета, строка // предпочитаемый формат создания отчета (pdf,xlsx,doc,rtf), строка // id хранилища данных для отчета, целое число // параметры // английское название параметра, строка // тип параметра, строка // название параметра, строка // обязателен ли параметр, логическое число // описание параметра, строка // сцепить со следующим в период (для дат), логическое число // значение по умолчанию, строка // берутся ли значения из БД (для типа int), логическое число // SQL-запрос (для типа int), строка
Ответ:
Статус: 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 - успешное выполнение
Формат: json
{
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
Содержит описание ошибки