- Пользователи
- Список пользователей
- Количество пользователей
- Информация о пользователе
- Создание пользователя
- Изменение пользователя
- Удаление пользователя
- Экспорт пользователя
- Управление пользователями (вариант 2)
- Управление типами пользователей
- Управление метками пользователей
- Мониторинг пользователей
- Датчики пользователей
- Список ролей
- Управление ролями
- Объекты слоя
- Создание объекта
- Список возможных значений для полей, связанных с таблицами
- Изменение объекта
- Удаление объекта
- Добавление медиа файлов к объекту
- Список объектов
- Количество объектов
- Объект слоя
- Список объектов в точке
- Список объектов в области
- Получение медиа информации всех объектов
- Получение медиа информации объекта
- Получение медиа файла
- Метрические характеристики произвольной геометрии
- Объекты таблицы
- Создание объекта
- Изменение объекта
- Удаление объекта
- Добавление медиа файлов к объекту
- Список объектов
- Количество объектов
- Объект слоя
- Список объектов в области
- Получение медиа информации всех объектов
- Получение медиа информации объекта
- Получение медиа файла
- Импорт из текста
- Массовое создание объектов
- Массовое обновление объектов
- Проверка статуса процесса массового создания/обновления
Главная страница
Базовые слои
GET /baselayers
Пример запроса:
GET /baselayers?apiVersion=2.0Параметры:
apiVersion— версия API,2.0
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 1, | целое число |
"name": "Карта России", | название, строка |
"code": 1940335525, | код, целое число |
"className": "M.TileLayer", | название класса, строка |
"firstKey": "https://basemap.geo4.me/worldmap/{z}/{x}/{y}.png", | первый параметр, зависит от JS-класса, может отсутствовать, строка |
"options": "{minZoom: 2, maxZoom: 19}", | опции, зависят от JS-класса, могут отсутствовать, объект/строка с настройками |
"customClass": null, | кастомный класс, если присутствует, то используется он, строка или null |
"position": 1, | позиция в списке, целое число |
"space": false, | является ли космоснимком, логическое значение |
"main": true | является ли основной подложкой, логическое значение |
} | |
] |
Карта
GET /mapextent
Пример запроса:
GET /mapextentОтвет
Статус: 200 - успешное выполнение
Формат: json
{ | |
"mapExtent": { | текущее положение карты, объект |
"id": 6, | целое число |
"name": "Наименование", | название, строка |
"extent": { | расположение, объект |
"minX": 47.867088965011725, | минимальное значение X, вещественное число |
"minY": 54.233424150623314, | минимальное значение Y, вещественное число |
"maxX": 54.99757390915839, | максимальное значение X, вещественное число |
"maxY": 56.72299186350165, | максимальное значение Y, вещественное число |
"projection": "EPSG:4326" | проекция |
}, | |
"main": true | является основным положением карты, логическое значение |
} | |
} |
Текущая версия
GET /version
Пример запроса:
GET /versionОтвет
Статус: 200 - успешное выполнение
Формат: json
3.52.0Описание:
- текущая версия приложения
Текущая локаль
GET /locale
Пример запроса:
GET /localeОтвет
Статус: 200 - успешное выполнение
Формат: json
{ | |
"language": "ru", | язык, строка |
"country": "Russia", | страна, строка |
"code": "ru" | код, строка |
} |
Языки
Доступные языки
GET /languages
Структура запроса:
GET /languagesОтвет
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 1, | id, целое число |
"code": "ru", | двухбуквенный код язык, строка |
"name": "Русский", | название языка, строка |
"position": 1, | позиция в списке, целое число |
"visible": true, | показывать ли в интерфейсе, логическое |
"main": true, | язык сервера, логическое |
"current": true | текущий язык пользователя, строка |
} | |
] |
Переключение языка
/?lang=en
Структура запроса:
/?lang=enПараметры:
lang— код языка
Ответ
Статус: 200 - успешное выполнение
Ответ от основного запроса
Авторизация
Текущий пользователь
GET /users/current
Структура запроса:
GET /users/current?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"user": { | данные о пользователе, если он авторизован, объект |
"id": 110, | id пользователя, целое число |
"login": "login", | логин пользователя, строка |
"name": "Пользователь", | имя пользователя, строка |
"info": { | данные о пользователе, объект |
"address": "", | адрес пользователя, строка |
"phone": "", | телефон, строка |
"email": "test@gmail.com", | электронная почта, строка |
"passport": "" | паспортные данные, строка |
}, | |
"organizations": [ | доступные организации, массив объектов |
{ | |
"main": true, | является ли организация основной, логическое |
"organizationId": 4 | id организации, целое число |
} | |
], | |
"tracking": true, | включен ли трекинг, логическое |
"avatarUpdateDate": null, | дата обновления аватарки, если она есть, timestamp |
"tags": [ | прикрепленные метки, массив объектов |
{ | |
"id": 1 | id метки, целое число |
} | |
], | |
"role": { | информация о роли, объект |
"id": 10, | id, целое число |
"title": "Администратор организации", | название, строка |
"code": "ORG_ADMINISTRATOR", | код, строка |
"order": 3 | порядок роли, целое число |
}, | |
"typeId": 1, | id типа, целое число |
"roleId": 10, | id роли, целое число |
"organizationId": 4, | id основной организации, целое число |
"organizationName": "Организация" | название основной организации, строка |
} | |
} |
Выход
GET /logout
Структура запроса:
GET /logout?token=9d63ac832398e2bc8992459fa5551b6bПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"status": "ok"
}Организации
Список организаций
GET /organizations
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 3, | id организации, целое число |
"name": "Клиент 1", | название организации, строка |
"logo": "logo_3.png", | файл логотипа, строка |
"client": false, | клиентская ли организация, логическое |
"inviteDeeplink": "https://activemapmobile.app.link/Yy3keapLj3", | ссылка для регистрации в организации, строка |
"info": { | дополнительная информация, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"fax": "", | факс, строка |
"email": "", | email, строка |
"inn": null, | ИНН, целое число |
"kpp": null, | КПП, целое число |
"bank": "", | банк, строка |
"bankKpp": null, | КПП банка, целое число |
"bankBik": null, | БИК банка, целое число |
"bankSchet": "", | кор.счет банка, строка |
"fullName": "", | полное юридическое название организации |
"account": "", | счет организации, строка |
"headFio": "", | ФИО руководителя, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"maxUsersCount": null, | максимальное количество пользователей в организации, целое число |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
}, | |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"totalUsers": 2, | всего пользователей в организации |
"dataStoreId": 3, | id хранилища данных, целое число |
"clusterId": 1, | id кластера, целое число |
"clusterName": "По умолчанию1", | название кластера, строка |
"mapExtentBBox": { | границы карты, объект |
"minX": 37.4973678588867, | минимальный Х, вещественное число |
"minY": 55.72034270027683, | минимальный Y, вещественное число |
"maxX": 37.73769378662114, | максимальный Х, вещественное число |
"maxY": 55.79375442691235, | максимальный Y, вещественное число |
"projection": "EPSG:4326" | проекция, строка |
} | |
},...] |
Информация об организации
GET /organizations/{id}
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 3, | id организации, целое число |
"name": "Клиент 1", | название организации, строка |
"logo": "logo_3.png", | файл логотипа, строка |
"client": false, | клиентская ли организация, логическое |
"inviteDeeplink": "https://activemapmobile.app.link/Yy3keapLj3", | ссылка для регистрации в организации, строка |
"info": { | дополнительная информация, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"fax": "", | факс, строка |
"email": "", | email, строка |
"inn": null, | ИНН, целое число |
"kpp": null, | КПП, целое число |
"bank": "", | банк, строка |
"bankKpp": null, | КПП банка, целое число |
"bankBik": null, | БИК банка, целое число |
"bankSchet": "", | кор.счет банка, строка |
"fullName": "", | полное юридическое название организации |
"account": "", | счет организации, строка |
"headFio": "", | ФИО руководителя, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"maxUsersCount": null, | максимальное количество пользователей в организации, целое число |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
}, | |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"totalUsers": 2, | всего пользователей в организации |
"dataStoreId": 3, | id хранилища данных, целое число |
"clusterId": 1, | id кластера, целое число |
"clusterName": "По умолчанию1", | название кластера, строка |
"mapExtentBBox": { | границы карты, объект |
"minX": 37.4973678588867, | минимальный Х, вещественное число |
"minY": 55.72034270027683, | минимальный Y, вещественное число |
"maxX": 37.73769378662114, | максимальный Х, вещественное число |
"maxY": 55.79375442691235, | максимальный Y, вещественное число |
"projection": "EPSG:4326" | проекция, строка |
} | |
} |
Описание организации
GET /organizations/{id}/about
Ответ
Статус: 200 - успешное выполнение
Формат: html
описание организации в формате htmlСоздание организации
Ограничение: Доступно только для пользователей с правами уровня доступа "Кластеры", "Полный"
POST /organizations
Пример запроса:
Формат: json
{ | |
"name": "Организация", | название организации, строка |
"clusterId": 1, | id кластера (доступно только гл. админу), целое число |
"client": false, | является ли организация клиентской (доступно только гл. админу), логическое |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"info": { | дополнительная информация, объект |
"about": "", | информация об организации, строка |
"account": "", | счет организации, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"accountantSignatureUuid": null, | подпись бухгалтера, uuid загруженного файла, строка |
"address": "", | адрес, строка |
"bank": "", | банк, строка |
"bankBik": "", | БИК банка, целое число |
"bankKpp": "", | КПП банка, целое число |
"bankSchet": "", | кор. счет банка, строка |
"email": "", | email, строка |
"fax": "", | факс, строка |
"fullName": "", | полное юридическое название организации, строка |
"headFio": "", | ФИО директора, строка |
"headSignatureUuid": null, | подпись директора, uuid загруженного файла, строка |
"inn": "", | ИНН, целое число |
"kpp": "", | КПП, целое число |
"logoUuid": null, | логотип организации, uuid загруженного файла, строка |
"maxUsersCount": "", | максимальное количество пользователей в организации, целое число |
"phone": "", | телефон, строка |
"stampUuid": null | печать, uuid загруженного файла, строка |
}, | |
"mapExtent": [ | - минимальный Х, минимальный Y, максимальный Х, максимальный Y (вещественное число) |
56.72299186350165, | |
54.233424150623314, | |
54.997573909158405, | |
47.86708896501173 | |
], | |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 3, | id организации, целое число |
"name": "Клиент 1", | название организации, строка |
"logo": "logo_3.png", | файл логотипа, строка |
"client": false, | клиентская ли организация, логическое |
"inviteDeeplink": "https://activemapmobile.app.link/Yy3keapLj3", | ссылка для регистрации в организации, строка |
"info": { | дополнительная информация, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"fax": "", | факс, строка |
"email": "", | email, строка |
"inn": null, | ИНН, целое число |
"kpp": null, | КПП, целое число |
"bank": "", | банк, строка |
"bankKpp": null, | КПП банка, целое число |
"bankBik": null, | БИК банка, целое число |
"bankSchet": "", | кор.счет банка, строка |
"fullName": "", | полное юридическое название организации |
"account": "", | счет организации, строка |
"headFio": "", | ФИО руководителя, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"maxUsersCount": null, | максимальное количество пользователей в организации, целое число |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
}, | |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"totalUsers": 2, | всего пользователей в организации |
"dataStoreId": 3, | id хранилища данных, целое число |
"clusterId": 1, | id кластера, целое число |
"clusterName": "По умолчанию1", | название кластера, строка |
"mapExtentBBox": { | границы карты, объект |
"minX": 37.4973678588867, | минимальный Х, вещественное число |
"minY": 55.72034270027683, | минимальный Y, вещественное число |
"maxX": 37.73769378662114, | максимальный Х, вещественное число |
"maxY": 55.79375442691235, | максимальный Y, вещественное число |
"projection": "EPSG:4326" | проекция, строка |
} | |
} |
Изменение организации
Ограничение: Доступно только для пользователей с правами уровня доступа "Организации", "Кластеры", "Полный"
PUT /organizations/{id}
Пример запроса:
Формат: json
{ | |
"name": "Организация", | название организации, строка |
"client": false, | является ли организация клиентской (доступно только гл. админу), логическое |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"info": { | дополнительная информация, объект |
"about": "", | информация об организации, строка |
"account": "", | счет организации, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"accountantSignatureUuid": null, | подпись бухгалтера, uuid загруженного файла, строка |
"address": "", | адрес, строка |
"bank": "", | банк, строка |
"bankBik": "", | БИК банка, целое число |
"bankKpp": "", | КПП банка, целое число |
"bankSchet": "", | кор. счет банка, строка |
"email": "", | email, строка |
"fax": "", | факс, строка |
"fullName": "", | полное юридическое название организации, строка |
"headFio": "", | ФИО директора, строка |
"headSignatureUuid": null, | подпись директора, uuid загруженного файла, строка |
"inn": "", | ИНН, целое число |
"kpp": "", | КПП, целое число |
"logoUuid": null, | логотип организации, uuid загруженного файла, строка |
"maxUsersCount": "", | максимальное количество пользователей в организации, целое число |
"phone": "", | телефон, строка |
"stampUuid": null | печать, uuid загруженного файла, строка |
}, | |
"mapExtent": [ | - минимальный Х, минимальный Y, максимальный Х, максимальный Y (вещественное число) |
56.72299186350165, | |
54.233424150623314, | |
54.997573909158405, | |
47.86708896501173 | |
], | |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 3, | id организации, целое число |
"name": "Клиент 1", | название организации, строка |
"logo": "logo_3.png", | файл логотипа, строка |
"client": false, | клиентская ли организация, логическое |
"inviteDeeplink": "https://activemapmobile.app.link/Yy3keapLj3", | ссылка для регистрации в организации, строка |
"info": { | дополнительная информация, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"fax": "", | факс, строка |
"email": "", | email, строка |
"inn": null, | ИНН, целое число |
"kpp": null, | КПП, целое число |
"bank": "", | банк, строка |
"bankKpp": null, | КПП банка, целое число |
"bankBik": null, | БИК банка, целое число |
"bankSchet": "", | кор.счет банка, строка |
"fullName": "", | полное юридическое название организации |
"account": "", | счет организации, строка |
"headFio": "", | ФИО руководителя, строка |
"accountantFio": "", | ФИО бухгалтера, строка |
"maxUsersCount": null, | максимальное количество пользователей в организации, целое число |
"customFields": { | дополнительные поля, объект |
"custom_filed_name": { | название дополнительного поля, объект |
"field_id": 5, | id поля, целое число |
"value": "значение поля" | значение поля, зависит от типа поля |
}, | |
.... | |
} | |
}, | |
"gisEditorDefaultAccess": false, | доступ по умолчанию к ГИС редактору для новых пользователей, логическое |
"assignedOrganizationId": 3, | id организации, которая выполняет задания текущей по умолчанию |
"totalUsers": 2, | всего пользователей в организации |
"dataStoreId": 3, | id хранилища данных, целое число |
"clusterId": 1, | id кластера, целое число |
"clusterName": "По умолчанию1", | название кластера, строка |
"mapExtentBBox": { | границы карты, объект |
"minX": 37.4973678588867, | минимальный Х, вещественное число |
"minY": 55.72034270027683, | минимальный Y, вещественное число |
"maxX": 37.73769378662114, | максимальный Х, вещественное число |
"maxY": 55.79375442691235, | максимальный Y, вещественное число |
"projection": "EPSG:4326" | проекция, строка |
} | |
} |
Удаление организации
Ограничение: Доступно только для пользователей с правами уровня доступа "Кластеры", "Полный"
DELETE /organizations/{id}
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Экспорт организации
GET /organizations.xlsx
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Дополнительные поля
GET /organizations/customfields
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 3, | идентификатор поля |
"name": "Название поля", | название поля |
"translit": "nazvanie_polia", | транслит названия поля |
"format": "dataTableObjects", | формат поля |
"possibleValues": null, | возможные значения (null, если не задано) |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина значения (0, если не задано) |
"maxLength": 0, | максимальная длина значения (0, если не задано) |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": false, | возможность выбора нескольких значений (true/false) |
"timeZone": "Europe/Moscow", | часовой пояс кластера (null, если не задано) |
"clusterId": null, | идентификатор кластера, к которому относится поле (null, если не задано) |
"clusterName": null, | название кластера, к которому относится поле (null, если не задано) |
"defaultValueLocal": null, | локализованное значение по умолчанию для даты (null, если не задано) |
"tableId": 52 | идентификатор таблицы, для типа "Объекты таблицы" |
}] |
Поля:
format— int (целое число), string (строка), text (текст), float (вещественно число), date (дата), bool (условие), list (список), telephone (телефон), dataTableObjects (Объекты таблицы)possibleValues— значения для поля "list", массив строкregexp— регулярное значение для текстовых полейminLength— минимальная длина строки или минимальное значение в цифровом полеmaxLength— максимальная длина строки или максимальное значение в цифровом полеrequired— обязательность поляdefaultValue— значение по умолчаниюvisible— видимость поляmultiselect— возможность множественного выбора из списка
Пользователи
Список пользователей
GET /users
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 108, | id пользователя, целое число |
"login": "login", | логин пользователя, строка |
"name": "ФИО", | ФИО пользователя, строка |
"tracking": true, | включен ли мониторинг, логическое |
"organizationId": 4, | id основной организации, целое число |
"organizationName": "Организация", | название основной организации, строка |
"organizations": [ | все организации, массив объектов |
{ | |
"main": true, | является ли организация основной, логическое |
"organizationId": 4 | id организации, целое число |
},... | |
], | |
"roleId": 10, | id роли пользователя, целое число |
"roleCode": "CHIEF_ADMINISTRATOR", | |
"typeId": 25, | id типа пользователя, целое число |
"info": { | информация о пользователе, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"email": "", | электронная почта, строка |
"passport": "" | паспортные данные, строка |
}, | |
"avatarUpdateDate": 1609362406957, | время последнего обновления аватара, миллисекунды |
"tags": [ | метки, массив объектов |
{ | |
"id": 43 | id метки, целое число |
},... | |
], | |
"blocked": false, | заблокирован ли пользователь, логическое |
"clusterIds": [2,3], | id кластеров, массив целых чисел |
"gisEditorAccess": true, | есть ли доступ к редактору на карте, логическое |
"activeTill": null, | время, до которого активен пользователь, миллисекунды |
"activeTillLocal": null, | время, до которого активен пользователь, в локальном времени, строка |
"lastAuthentication": 1770640898043, | время последней аутентификации, миллисекунды |
"timeZone": "Europe/Moscow", | часовой пояс, строка |
"ldapAuthentication": false, | аутентификация через LDAP, логическое |
"authenticationType": 0 | тип аутентификации, целое число |
},...] |
Количество пользователей
GET /users/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
233Описание:
- количество пользователей, целое число
Информация о пользователе
GET /users
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 108, | id пользователя, целое число |
"login": "login", | логин пользователя, строка |
"name": "ФИО", | ФИО пользователя, строка |
"tracking": true, | включен ли мониторинг, логическое |
"organizationId": 4, | id основной организации, целое число |
"organizationName": "Организация", | название основной организации, строка |
"organizations": [ | все организации, массив объектов |
{ | |
"main": true, | является ли организация основной, логическое |
"organizationId": 4 | id организации, целое число |
},... | |
], | |
"roleId": 10, | id роли пользователя, целое число |
"roleCode": "CHIEF_ADMINISTRATOR", | |
"typeId": 25, | id типа пользователя, целое число |
"info": { | информация о пользователе, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"email": "", | электронная почта, строка |
"passport": "" | паспортные данные, строка |
}, | |
"avatarUpdateDate": 1609362406957, | время последнего обновления аватара, миллисекунды |
"tags": [ | метки, массив объектов |
{ | |
"id": 43 | id метки, целое число |
},... | |
], | |
"blocked": false, | заблокирован ли пользователь, логическое |
"clusterIds": [2,3], | id кластеров, массив целых чисел |
"gisEditorAccess": true, | есть ли доступ к редактору на карте, логическое |
"activeTill": null, | время, до которого активен пользователь, миллисекунды |
"activeTillLocal": null, | время, до которого активен пользователь, в локальном времени, строка |
"lastAuthentication": 1770640898043, | время последней аутентификации, миллисекунды |
"timeZone": "Europe/Moscow", | часовой пояс, строка |
"ldapAuthentication": false, | аутентификация через LDAP, логическое |
"authenticationType": 0 | тип аутентификации, целое число |
} |
Создание пользователя
Ограничение: Доступно только для пользователей с правами уровня доступа "Организации", "Кластеры", "Полный"
POST /users
Пример запроса:
Формат: json
{ | |
"login": "login", | логин, строка |
"name": "ФИО", | имя пользователя, строка |
"password": "", | пароль, строка |
"roleId": 10, | id роли, целое число |
"typeId": 1, | id типа, целое число |
"organizationId": 4, | id основной организации, целое число |
"additionalOrgIds": [24], | массив id дополнительных организаций |
"tracking": false, | включен ли мониторинг, логическое |
"info": { | информация о пользователе, объект |
"passport": "", | паспортные данные, строка |
"address": "", | адрес пользователя, строка |
"phone": "", | номер телефона, строка |
"email": "" | электронная почта, строка |
}, | |
"tags": [12,14], | массив id меток |
"avatarUuid": "hrajjtwyjtwyjtjstyjstywjtsjtyj.jpg" | uuid загруженного аватара, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 108, | id пользователя, целое число |
"login": "login", | логин пользователя, строка |
"name": "ФИО", | ФИО пользователя, строка |
"tracking": true, | включен ли мониторинг, логическое |
"organizationId": 4, | id основной организации, целое число |
"organizationName": "Организация", | название основной организации, строка |
"organizations": [ | все организации, массив объектов |
{ | |
"main": true, | является ли организация основной, логическое |
"organizationId": 4 | id организации, целое число |
},... | |
], | |
"roleId": 10, | id роли пользователя, целое число |
"typeId": 25, | id типа пользователя, целое число |
"info": { | информация о пользователе, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"email": "", | электронная почта, строка |
"passport": "" | паспортные данные, строка |
}, | |
"avatarUpdateDate": 1609362406957, | время последнего обновления аватара, миллисекунды |
"tags": [ | метки, массив объектов |
{ | |
"id": 43 | id метки, целое число |
},... | |
] | |
} |
Изменение пользователя
Ограничение: Доступно только для пользователей с правами уровня доступа "Организации", "Кластеры", "Полный"
PUT /users/{id}
Пример запроса:
Формат: json
{ | |
"id": 24, | id пользователя, целое число |
"login": "login", | логин, строка |
"name": "ФИО", | имя пользователя, строка |
"password": "", | пароль, строка |
"roleId": 10, | id роли, целое число |
"typeId": 1, | id типа, целое число |
"organizationId": 4, | id основной организации, целое число |
"additionalOrgIds": [24], | массив id дополнительных организаций |
"tracking": false, | включен ли мониторинг, логическое |
"info": { | информация о пользователе, объект |
"passport": "", | паспортные данные, строка |
"address": "", | адрес пользователя, строка |
"phone": "", | номер телефона, строка |
"email": "" | электронная почта, строка |
}, | |
"tags": [12,14], | массив id меток |
"avatarUuid": "hrajjtwyjtwyjtjstyjstywjtsjtyj.jpg", | uuid нового загруженного аватара, строка |
"avatarDeleted": false | если надо удалить аватарку, логическое |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 24, | id пользователя, целое число |
"login": "login", | логин пользователя, строка |
"name": "ФИО", | ФИО пользователя, строка |
"tracking": true, | включен ли мониторинг, логическое |
"organizationId": 4, | id основной организации, целое число |
"organizationName": "Организация", | название основной организации, строка |
"organizations": [ | все организации, массив объектов |
{ | |
"main": true, | является ли организация основной, логическое |
"organizationId": 4 | id организации, целое число |
},... | |
], | |
"roleId": 10, | id роли пользователя, целое число |
"typeId": 25, | id типа пользователя, целое число |
"info": { | информация о пользователе, объект |
"address": "", | адрес, строка |
"phone": "", | телефон, строка |
"email": "", | электронная почта, строка |
"passport": "" | паспортные данные, строка |
}, | |
"avatarUpdateDate": 1609362406957, | время последнего обновления аватара, миллисекунды |
"tags": [ | метки, массив объектов |
{ | |
"id": 43 | id метки, целое число |
},... | |
] | |
} |
Удаление пользователя
Ограничение: Доступно только для пользователей с правами уровня доступа "Организации", "Кластеры", "Полный"
DELETE /users/{id}
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Экспорт пользователя
Ограничение: Доступно только для пользователей с правами уровня доступа "Организации", "Кластеры", "Полный"
GET /users.xlsx
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Список ролей пользователей
GET /users/roles
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 416, | id роли, целое число |
"title": "Новая роль пользователя", | название роли, строка |
"code": "ORG_USER", | код роли, строка |
"cluster": { | кластер (если есть), объект |
"id": 2, | |
"title": "КЛАСТЕР_1" | |
}, | |
"level": "SELF", | уровень доступа |
"visibility_level": "NORMAL", | уровень видимости |
"privileges": { | привилегии, объект, в котором ключ - название привилегии |
"create_task": true, | |
"update_cluster": false, | |
"create_cluster": false, | |
"delete_cluster": false, | |
"update_organization": false, | |
"create_organization": false, | |
"delete_organization": false, | |
"update_myself": true, | |
"update_other_user": false, | |
"move_user": false, | |
"change_user_name": false, | |
"create_user": false, | |
"change_user_password": true, | |
"change_user_role": false, | |
"change_user_type": false, | |
"change_user_login": false, | |
"change_user_deadline": false, | |
"toggle_user_ldap_auth": false, | |
"toggle_user_monitoring": false, | |
"toggle_user_gis_editor_access": false, | |
"toggle_two_factor_auth": false, | |
"change_user_tags": false, | |
"delete_other_user": false, | |
"delete_myself": true, | |
"read_other_user_location": true, | |
"read_other_user_gauges": true, | |
"access_task": true, | |
"update_my_task": true, | |
"update_assigned_task": false, | |
"delete_my_task": false, | |
"delete_assigned_task": false, | |
"can_be_assigned": true, | |
"access_task_map": true, | |
"access_schedule": true, | |
"update_schedule": false, | |
"create_schedule": false, | |
"delete_schedule": false | |
},... | |
| |
} | |
] |
Дополнительные поля
Список полей
GET /common/fields
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 3, | идентификатор поля |
"name": "Название поля", | название поля |
"translit": "nazvanie_polia", | транслит названия поля |
"format": "dataTableObjects", | формат поля |
"possibleValues": null, | возможные значения (null, если не задано) |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина значения (0, если не задано) |
"maxLength": 0, | максимальная длина значения (0, если не задано) |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": false, | возможность выбора нескольких значений (true/false) |
"timeZone": "Europe/Moscow", | часовой пояс кластера (null, если не задано) |
"clusterId": null, | идентификатор кластера, к которому относится поле (null, если не задано) |
"clusterName": null, | название кластера, к которому относится поле (null, если не задано) |
"defaultValueLocal": null, | локализованное значение по умолчанию для дата (null, если не задано) |
"tableId": 52 | идентификатор таблицы, для типа "Объекты таблицы" |
}] |
Поля:
format— int (целое число), string (строка), text (текст), float (вещественно число), date (дата), bool (условие), list (список), telephone (телефон), dataTableObjects (Объекты таблицы)possibleValues— значения для поля "list", массив строкregexp— регулярное значение для текстовых полейminLength— минимальная длина строки или минимальное значение в цифровом полеmaxLength— максимальная длина строки или максимальное значение в цифровом полеrequired— обязательность поляdefaultValue— значение по умолчаниюvisible— видимость поляmultiselect— возможность множественного выбора из списка
Создание поля
Ограничение: Доступно только для пользователей с правами гл. администратора
POST /common/fields
Пример запроса:
Формат: json
{ | |
"name": "Название поля", | название поля |
"translit": "nazvanie_polia", | транслит названия поля |
"format": "list", | формат поля |
"possibleValues": [ | возможные значения для поля "list", массив строк |
"значение1", | |
"значение2", | |
"значение3" | |
], | |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина строки или минимальное значение в цифровом поле |
"maxLength": 0, | максимальная длина строки или максимальное значение в цифровом поле |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": false, | возможность выбора нескольких значений (true/false) |
"tableId": 52, | идентификатор таблицы, для типа "Объекты таблицы" |
"clusterId": 34, | идентификатор кластера, к которому относится поле (null, если не задано) |
"essenceType": "organization" | тип сущности, к которой относится поле (organization) |
| |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 3, | идентификатор поля |
"name": "Название поля", | название поля |
"translit": "nazvanie_polia", | транслит названия поля |
"format": "dataTableObjects", | формат поля |
"possibleValues": null, | возможные значения (null, если не задано) |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина значения (0, если не задано) |
"maxLength": 0, | максимальная длина значения (0, если не задано) |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": false, | возможность выбора нескольких значений (true/false) |
"timeZone": "Europe/Moscow", | часовой пояс кластера (null, если не задано) |
"clusterId": null, | идентификатор кластера, к которому относится поле (null, если не задано) |
"clusterName": null, | название кластера, к которому относится поле (null, если не задано) |
"defaultValueLocal": null, | локализованное значение по умолчанию для дата (null, если не задано) |
"tableId": 52 | идентификатор таблицы, для типа "Объекты таблицы" |
} |
Изменение поля
Ограничение: Доступно только для пользователей с правами гл. администратора
PATCH /common/fields
Пример запроса:
Формат: json
{ | |
"name": "Название поля", | название поля |
"possibleValues": [ | возможные значения для поля "list", массив строк |
"значение4", | |
"значение5", | |
"значение6" | |
], | |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина строки или минимальное значение в цифровом поле |
"maxLength": 0, | максимальная длина строки или максимальное значение в цифровом поле |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": true | возможность выбора нескольких значений (true/false) |
| |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 3, | идентификатор поля |
"name": "Название поля", | название поля |
"translit": "nazvanie_polia", | транслит названия поля |
"format": "dataTableObjects", | формат поля |
"possibleValues": null, | возможные значения (null, если не задано) |
"regexp": null, | регулярное выражение для проверки значения (null, если не задано) |
"minLength": 0, | минимальная длина значения (0, если не задано) |
"maxLength": 0, | максимальная длина значения (0, если не задано) |
"required": false, | обязательность поля (true/false) |
"defaultValue": null, | значение по умолчанию (null, если не задано) |
"visible": true, | видимость поля (true/false) |
"multiselect": false, | возможность выбора нескольких значений (true/false) |
"timeZone": "Europe/Moscow", | часовой пояс кластера (null, если не задано) |
"clusterId": null, | идентификатор кластера, к которому относится поле (null, если не задано) |
"clusterName": null, | название кластера, к которому относится поле (null, если не задано) |
"defaultValueLocal": null, | локализованное значение по умолчанию для дата (null, если не задано) |
"tableId": 52 | идентификатор таблицы, для типа "Объекты таблицы" |
} |
Удаление поля
Ограничение: Доступно только для пользователей с правами гл. администратора
DELETE /common/fields/{id}
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Отчеты
Список отчетов
GET /jreports
Структура запроса:
GET /jreports?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступаeditable— дополнительный параметр, возвращает список отчетов, которые могут быть отредактированы
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 1556, | id отчета, целое число |
"name": "Отчет с разными параметрам", | название отчета, строка |
"description": "отчет для тестирования", | описание отчета, строка |
"preferredFormat": "xlsx", | предпочтительный формат выгрузки отчета (pdf,xsls,doc,rtf), строка |
"dataStoreId": 1, | id хранилища, целое число |
"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— id параметра, целое числоdescription— название параметра, строкаtype— тип, строкаname— английское название, строкаlib— получать ли возможные значения дополнительно из БД (для типа "int" может быть true), логическоеlistPossibleValues— список возможных значений (для типа "list" не пустое), массив строкdefaultValue— значение по умолчанию, строкаhint— описание параметра, строкаsourceQuery— SQL-строка, строкаrequired— является ли поле обязательным, логическоеperiod— сцепить ли со следующим в период (может быть 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, то необходимо запросить список доступных значений.</li>num— вещественное число (double)boolean— логическое (boolean)text— текст (string)list— список текстовых значений (list). Список конечен и заранее сформирован
Получение отчета по id
GET /jreports/{reportId}
Структура запроса:
GET /jreports/705?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
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
}
]
}Доступные значения параметра из БД
GET /jreports/{reportId}/parameters/{parameterId}/values
Структура запроса:
GET /jreports/705/parameters/234/values?token=b3f0a9d48165be1c95bd028d3f04094geyhrwtuwtejetkeyuketkeyukПараметры:
reportId— id отчетаparameterId— id параметраtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 1, | id значения, целое число |
"name": "значение 1" | название значения, строка |
},... | |
] |
Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Права по умолчанию на отчет
GET /jreports/{reportId}/defaultaccess
Структура запроса:
GET /jreports/705/defaultaccess?token=b3f0a9d48165be1c95bd028d3f04094geyhrwtuwtejetkeyuketkeyukПараметры:
reportId— id отчетаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 7, | id значения, целое число |
"roleId": null, | id роли, целое число |
"roleName": null, | название роли, если выбрана, строка |
"allRoles": null, | для всех ролей, логическое |
"organizationId": 5, | id организации, целое число |
"organizationName": "ОРГ А", | название организации, если выбрана, строка |
"allOrganizations": null, | для всех организаций, логическое |
"publicOrganizations": null, | true - для клиентских организаций, false - для не клиентских |
"read": true, | права на чтение, логическое |
"edit": true | права на изменение, логическое |
}, ... | |
] |
Загрузка отчета
POST /jreports/upload
Структура запроса:
POST /jreports/upload?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: multipart/form-data
Параметры:
Content-Type— multipart/form-data; boundary=----WebKitFormBoundary0ohUI5iAAtfIX8A0Формат отчета— jrxml
FormData(
name: p1dsrje76s18emv27mff1kb0aof3.jrxml,
file: (binary)
)Описание полей:
name— поле name в форме, уникальное для файлаfile— xml отчета, созданного через специализированное ПО
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"status": "ok", | статус ответа |
"data": ["p198coiisr1o0c1a15vmu1knv5iv3.jrxml"] | uuid загруженного файла |
} |
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного отчета
GET /jreports/uploaded/{uuid}
Структура запроса:
GET /jreports/uploaded/p198coiisr1o0c1a15vmu1knv5iv3.jrxml?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
uuid— uuid файла отчетаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"name":"in_integer", | название, строка |
"type":"int" | тип, строка |
}] |
Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Создание только что загруженного отчета
POST /jreports
Структура запроса:
POST /jreports?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"name": "Новый отчет", | название отчета, строка |
"xmlFile": "p1dsrk8a6rb2a1os14c1qjg3f73.jrxml", | uuid файла отчета (приходит при загрузке файла отчета), строка |
"description": "создаем новый отчет", | описание отчета, строка |
"preferredFormat": "xlsx", | предпочитаемый формат создания отчета (pdf,xlsx,doc,rtf), строка |
"dataStoreId": "1", | id хранилища данных для отчета, целое число |
"parameters": [ | параметры |
{ | |
"name": "timestamp", | английское название параметра, строка |
"type": "date", | тип параметра, строка |
"description": "дата и время", | название параметра, строка |
"required": true, | обязателен ли параметр, логическое число |
"hint": "описание параметра", | описание параметра, строка |
"period": false, | сцепить со следующим в период (для дат), логическое число |
"defaultValue": "d+7200", | значение по умолчанию, строка |
"lib": false, | берутся ли значения из БД (для типа int), логическое число |
"sourceQuery": null | SQL-запрос (для типа int), строка |
},... | |
], | |
"defaultAccess": [ | права на слой по умолчанию |
{ | |
"roleId": 10, | id роли |
"allRoles": false, | для всех ролей, логическое |
"organizationId": null, | id организации |
"allOrganizations": true, | для всех организаций, логическое |
"publicOrganizations": null, | true - для клиентских организаций, false - для не клиентских |
"read": true, | право на чтение |
"edit": false | право на изменение |
} | |
] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 1,
"name": "Новый отчет",
"description": "создаем новый отчет",
"preferredFormat": "xlsx",
"dataStoreId": 1,
"parameters": [
{
"id": 1,
"description": "дата и время",
"type": "date",
"name": "timestamp",
"lib": false,
"listPossibleValues": null,
"defaultValue": "d+7200",
"hint": "описание параметра",
"required": true,
"period": false
},...
]
}Статус: 403 - нет доступа к загрузке отчетов
Формат: text/plain
Содержит описание ошибки
Статус: 404 - отчет не загружен
Формат: text/plain
Содержит описание ошибки
Изменение отчета
PUT /jreports/{reportId}
Структура запроса:
PUT /jreports/604?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
reportId— id отчетаtoken— ключ доступа
Пример запроса:
Формат: json
{
"name": "Измененный отчет",
"description": "меняем отчет",
"preferredFormat": "pdf",
"dataStoreId": "1",
"parameters": [
{
"name": "timestamp",
"type": "date",
"description": "дата и время",
"required": true,
"hint": "описание параметра",
"period": false,
"defaultValue": "d+7200",
"lib": false,
"sourceQuery": null
},...
],
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false
}
]
}Ответ
Статус: 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
Содержит описание ошибки
Удаление отчета
DELETE /jreports/{id}
Структура запроса:
DELETE /jreports/1?token=mbs90lon2adathutyrkrytkirtuiltuoltuiol8Параметры:
id— id удаляемого отчетаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true,
"id":1
}Генерация отчетов
Для генерации отчетов необходимо подключиться по 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, | статус отчета, целое число (0,1,2,3,4) |
"name": "1573130284987PdkVAHCv.pdf", | название сгенерированного файла, строка |
"alias": "Отчет 'Качество работы по заданиям' от 07.11.2019 15:38:39 (с 08.10.19 15:37 по 07.11.19 15:37) (PDF)", | название отчета или описание стадии, строка |
"expire": 1573133885018, | время жизни сгенерированного отчета или null, миллисекунды |
"format": "pdf", | формат сгенерированного отчета (pdf,xsls,doc,rtf), строка |
"taskId": "4yh2441-c201-4e7d-8bfe-0e65b800764b", | id процесса, целое число |
"reportId": 1393, | id отчета, целое число |
"size": 2945, | размер созданного отчета в байтах или null, целое число |
"requestDate": 1576840864165 | когда был запрошен отчет, миллисекунды |
}, ... | |
] | |
} |
Статусы:
0— отчет сгенерирован с ошибкой1— отчет сгенерирован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, | название сгенерированного файла = null |
"alias": "Отчет \"Качество работы по заданиям\" отправлен в очередь на создание....", | описание стадии |
"expire": null, | время жизни сгенерированного отчета = null |
"format": null, | формат сгенерированного отчета = null |
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19", | id процесса |
"reportId": 1553, | id отчета |
"size": null, | размер созданного отчета в байтах = null |
"requestDate": 1576848878881 | когда был запрошен отчет |
} | |
} |
Ответ от сервера, когда отчет начал генерироваться:
Формат: json
{ | |
"command": "REPORT_IN_WORK", | |
"data": { | |
"status": 2, | статус отчета |
"name": null, | название сгенерированного файла = null |
"alias": "Отчет \"Качество работы по заданиям\" принят в обработку", | описание стадии |
"expire": null, | время жизни сгенерированного отчета = null |
"format": null, | формат сгенерированного отчета = null |
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19", | id процесса |
"reportId": 1553, | id отчета |
"size": null, | размер созданного отчета в байтах = null |
"requestDate": 1576848878881 | когда был запрошен отчет |
} | |
} |
Ответ от сервера, когда отчет создался:
Формат: 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", | id процесса |
"reportId": 1553, | id отчета |
"size": 26224, | размер созданного отчета в байтах |
"requestDate": 1576848878881 | когда был запрошен отчет |
} | |
} |
Ответ от сервера, когда отчет не может создаться, так как выходит ошибка:
Формат: json
{ | |
"command": "REPORT_READY", | |
"data": { | |
"status": 0, | статус отчета |
"name": null, | название сгенерированного файла = null |
"alias": "Ошибка при создании отчета: \"Error executing SQL statement for: Отчет по зоне.\"", | название ошибки |
"expire": null, | время жизни сгенерированного отчета = null |
"format": null, | формат сгенерированного отчета = null |
"taskId": "64f8ac17-7f56-4a1e-bf55-c3b577daa00a", | id процесса |
"reportId": 1556, | id отчета |
"size": null, | размер созданного отчета в байтах = null |
"requestDate": 1576849192090 | когда был запрошен отчет |
} | |
} |
Прерывание генерации отчета
Команда через WebSocket:
{
"command":"CANCEL_REPORT",
"data":{
"taskId":"32cffab4-5a19-4c21-8fbf-eb1f70e9d936"
}
}В ответ придет:
Формат: json
{ | |
"command": "REPORT_CANCELED", | |
"data": { | |
"status": 3, | статус отчета |
"name": null, | название сгенерированного файла = null |
"alias": "Отчет отменен", | название состояния |
"expire": null, | время жизни сгенерированного отчета = null |
"format": null, | формат сгенерированного отчета = null |
"taskId": "cbcc5c18-e40c-4652-818f-fea94fa4e582", | id процесса |
"reportId": 1393, | id отчета |
"size": null, | размер созданного отчета в байтах = null |
"requestDate": 1576849490230 | когда был запрошен отчет |
} | |
} |
Удаление сгенерированного отчета
Команда через WebSocket:
{
"command": "DELETE_REPORT",
"data": {
"taskId": "99d5486e-a533-4022-9894-e40ed0980534"
}
}В ответ придет:
Формат: json
{ | |
"command": "REPORT_DELETED", | |
"data": { | |
"taskId": "99d5486e-a533-4022-9894-e40ed0980534", | id процесса |
"reportId": 1557 | id отчета |
} | |
} |
В случае ошибки:
Формат: json
{ | |
"command": "REPORT_DELETED_ERROR", | |
"data": { | |
"text": "Недостаточно прав для данной операции" | описание ошибки |
"taskId": "99d5486e-a533-4022-9894-e40ed0980534", | id процесса |
"reportId": 1557 | id отчета |
} | |
} |
Поддержка соединения
Команда через WebSocket:
{
"command":"PING",
"data": null
}В ответ придет:
Формат: json
{
"command":"PONG",
"data": null
}Скачивание сгенерированного отчета
GET /jreports/file/{:name}
Структура запроса:
GET /jreports/file/1576848882094nXFhclQq.pdf?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
name— название созданного файлаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: массив байтов
Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Список сгенерированных отчетов
GET /jreports/saved
Структура запроса:
GET /jreports/saved?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 54458, | id файла, целое число |
"taskId": "bdbee471-6c6c-4416-bcfd-f27209c3ac19", | id процесса, строка |
"name": "1576848882094nXFhclQq.pdf", | название файла отчета |
"alias": "Отчет 'Отчет с разными параметрами' от 20.12.2019 16:34:42 (PDF)", | название отчета |
"format": { | формат |
"value": "pdf", | |
"contentType": "application/pdf" | contentType |
}, | |
"createDate": 1576848882097, | дата создания |
"requestDate": 1576848878881, | когда отчет был запрошен |
"size": 26224, | размер файла в байтах |
"reportId": 1553 | id отчета |
} | |
] |
Удаление сгенерированного отчета
GET /jreports/saved/{:id}
Структура запроса:
GET /jreports/saved/54458?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id файлаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 54461
}Статус: 404 - параметр не найден
Формат: text/plain
Содержит описание ошибки
Состояние отчетов в очереди
GET /jreports/generation
Структура запроса:
GET /jreports/generation?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"status": 2, | статус отчета, целое число (2,4) |
"name": null, | название сгенерированного файла = null, строка |
"alias": "Отчет \"Качество работы по заданиям\" принят в обработку", | описание стадии, строка |
"expire": null, | время жизни сгенерированного отчета = null, миллисекунды |
"format": "pdf", | формат сгенерированного отчета = null, строка |
"taskId": "d81a2441-c201-4e7d-8bfe-0e65b800764b", | id процесса, целое число |
"reportId": 1393, | id отчета, целое число |
"size": null, | размер созданного отчета в байтах = null, целое число |
"requestDate": 1576840354165 | когда был запрошен отчет, миллисекунды |
}, | |
{ | |
"status": 4, | |
"name": null, | |
"alias": "Отчет \"Качество работы по заданиям новый\" отправлен в очередь на создание....", | |
"expire": null, | |
"format": "pdf", | |
"taskId": "d81a2441-c201-4e7d-8bfe-0e65b800764b", | |
"reportId": 1394, | |
"size": null, | |
"requestDate": 1576840357645 | |
} | |
] |
Отмена генерации отчета
DELETE /jreports/generation?taskId=&token=
Структура запроса:
DELETE /jreports/generation?taskId=d81a2441-c201-4e7d-8bfe-0e65b800764b&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
taskId— id процессаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
Содержит описание
Статус: 400 - во время операции произошла ошибка
Формат: text/plain
Содержит описание ошибки
Права на отчеты
Список прав на отчеты
Ограничение: Доступно только для пользователей с правами администратора
GET /jreports/accesses
Структура запроса:
GET /jreports/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"userId": 60, | id пользователя, целое число |
"reportId": 25, | id отчета, целое число |
"reportName": "Отчет", | название отчета, строка |
"userLogin": "login", | логин пользователя, строка |
"userName": "ФИО пользователя", | имя пользователя, строка |
"read": false, | доступен просмотр, булевое поле |
"edit": false, | доступно управление, булевое поле |
"organizationId": 4, | id организации, целое число |
"roleId": 5 | id роли, целое число |
},...] |
Количество прав на отчеты
Ограничение: Доступно только для пользователей с правами администратора
GET /jreports/accesses/count
Структура запроса:
GET /jreports/accesses/count?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
367Описание:
- количество прав на отчеты
Создание права на отчеты
Ограничение: Доступно только для пользователей с правами администратора
POST /jreports/accesses
Структура запроса:
POST /jreports/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"read": true, | право на просмотр, булевое поле |
"edit": true, | право на управление, булевое поле |
"reportId": 368, | id отчета, целое число |
"userId": 58 | id пользователя, целое число |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"userId": 60, | id пользователя, целое число |
"reportId": 25, | id отчета, целое число |
"reportName": "Отчет", | название отчета, строка |
"userLogin": "login", | логин пользователя, строка |
"userName": "ФИО пользователя", | имя пользователя, строка |
"read": false, | доступен просмотр, булевое поле |
"edit": false, | доступно управление, булевое поле |
"organizationId": 4, | id организации, целое число |
"roleId": 5 | id роли, целое число |
} |
Сохранение порядка
POST /jreports/ordering
Структура запроса:
POST /jreports/ordering?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"orderings": [{ | порядок групп слоев, объект |
"id": 748, | id группы, целое число |
"order": 1 | порядок группы, целое число |
}, | |
{ | |
"id": 747, | id группы, целое число |
"order": 2 | порядок группы, целое число |
},…] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
Порядок сохранен
Экспорт прав на отчеты
Ограничение: Доступно только для пользователей с правами администратора
GET /jreports/accesses.xlsx
Структура запроса:
GET /jreports/accesses.xlsx?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Сервисы
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=b3f0a9d48165be1c95bd028d3f04094gПараметры:
service— сервис запроса WMSrequest— название запроса GetMapversion— версия 1.1.1layers— английское название слоя или слоев через запятуюstyles— название стиля или стилей через запятуюformat— формат, в котором вернется тайлtransparent— есть ли прозрачностьheight— высота тайлаwidth— ширина тайлаsrs— код проекцииbbox— область запросаcql_filter— строка CQL фильтраtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - ни один слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: 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=b3f0a9d48165be1c95bd028d3f04094gПараметры:
request— название запроса GetLegendGraphiclayer— английское название слояstyle— название стиля слояformat— формат, в котором вернется легендаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: зависит от параметра format
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: 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=b3f0a9d48165be1c95bd028d3f04094gПараметры:
service— сервис запроса WFSrequest— название запроса GetFeatureversion— версия 1.0.0typeName— английское название слояoutputFormat— формат возвращаемых данныхbbox— область запроса слояsrs— код проекции, по умолчанию EPSG:4326cql_filter— строка CQL фильтраtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: зависит от параметра outputFormat
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к слою
Формат: 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
Содержит описание ошибки
Стиль слоя
GET /service/styles/{layerId}/{styleName}.sld
Структура запроса:
GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояstyleName— название стиляtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: text/xml
Статус: 403 - нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Хранилища
Список хранилищ
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores
Структура запроса:
GET /datastores?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 1, | id хранилища, целое число |
"name": "Datastore", | название хранилища, строка |
"host": "192.168.63.36", | хост, строка |
"port": 5432, | порт, целое число |
"database": "data", | база данных, строка |
"login": "login", | логин, строка |
"schema": "data" | название схемы, с которой работает хранилище, строка |
},...] |
Создание хранилища
Ограничение: Доступно только для пользователей с правами администратора
POST /datastores
Структура запроса:
POST /datastores?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"name": "Datastore", | название хранилища, строка |
"host": "192.168.63.36", | хост, строка |
"port": 5432, | порт, целое число |
"database": "data", | база данных, строка |
"login": "login", | логин, строка |
"schema": "data" | название схемы, с которой работает хранилище, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 25, | id хранилища, целое число |
"name": "Datastore", | название хранилища, строка |
"host": "192.168.63.36", | хост, строка |
"port": 5432, | порт, целое число |
"database": "data", | база данных, строка |
"login": "login", | логин, строка |
"schema": "data" | название схемы, с которой работает хранилище, строка |
} |
Изменение хранилища
Ограничение: Доступно только для пользователей с правами администратора
PUT /datastores/{id}
Структура запроса:
PUT /datastores/64?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id хранилищаtoken— ключ доступа
Пример запроса:
{ | |
"id": 64, | id хранилища, целое число |
"name": "Datastore", | название хранилища, строка |
"host": "192.164.63.32", | хост, строка |
"port": 5874, | порт, целое число |
"database": "data", | база данных, строка |
"login": "login", | логин, строка |
"password": "654321", | пароль, строка |
"schema": "data" | название схемы, с которой работает хранилище, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 64, | id хранилища, целое число |
"name": "Datastore", | название хранилища, строка |
"host": "192.164.63.32", | хост, строка |
"port": 5874, | порт, целое число |
"database": "data", | база данных, строка |
"login": "login", | логин, строка |
"schema": "data" | название схемы, с которой работает хранилище, строка |
} |
Удаление хранилища
Ограничение: Доступно только для пользователей с правами администратора
DELETE /datastores/{id}
Структура запроса:
DELETE /datastores/64?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id хранилищаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Экспорт хранилищ
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores.xlsx
Структура запроса:
GET /datastores.xlsx?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Проекции хранилищ
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores/projections
Структура запроса:
GET /datastores/projections?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"projection": "EPSG:3819" | проекция |
},...] |
Проекции хранилища
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores/{id}/projections
Структура запроса:
GET /datastores/42/projections?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id хранилищаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"projection": "EPSG:3819" | проекция |
},...] |
Таблицы хранилища
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores/{id}/tables
Структура запроса:
GET /datastores/42/tables?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id хранилищаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"datastoreId": 42, | id хранилища, целое число |
"tableId": 0, | id таблицы, целое число |
"layerId": null, | id слоя, целое число |
"nameDb": "departments_news_points", | название базы данных, строка |
"geometryType": "POINT" | тип геометрии, строка |
},...] |
Информация о таблице хранилища
Ограничение: Доступно только для пользователей с правами администратора
GET /datastores/{id}/tables/{tablename}
Структура запроса:
GET /datastores/42/tables/test_table?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id хранилищаtablename— название таблицыtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"geometryType": "multilinestring", | тип геометрии, строка |
"name": "test_table", | название таблицы, строка |
"title": "Тестовая таблица", | русское название таблицы, строка |
"style": { | стили, объект |
"styleName": null, | название стиля, строка |
"geoCss": "* {\n stroke-dashoffset: 0;\n}", | geocss стиль, строка |
"base": false, | базовый, логическое |
"simple": false | простой, логическое |
}, | |
"dataStoreId": 22, | id хранилища, целое число |
"attributes": [{ | атрибуты таблицы, массив |
"name": "attribute", | название атрибута, строка |
"rusName": "Атрибут", | русское название атрибута, строка |
"type": "int", | тип, строка |
"title": true, | является заголовком, логическое |
"view": true, | доступен к просмотру, логическое |
"order": 1, | порядковый номер, целое число |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окне, логическое |
"reference": false, | поле связано с таблицей, логическое |
"refTable": null, | id таблицы, целое число |
"refField": null, | id поля c ключом, целое число |
"refFieldName": null | id поля с названием, целое число |
},...] | |
} |
Слои
Список слоев
GET /layers
Структура запроса:
GET /layers?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Получение списка слоев по английскому названию
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"layers": [{ | массив слоев |
"order": 9, | порядковый номер в списке, целое число |
"layer": { | объект слоя |
"id": 135, | id слоя, целое число |
"name": "testlayerpoint", | название слоя, строка |
"info": { | информация по слою, объект |
"id": 135, | id слоя, целое число |
"typeName": "test:testlayerpoint1410257743497_vw", | английское название слоя, строка |
"style": "point", | название стиля, строка |
"service": "WFS", | тип сервиса, WMS/WFS |
"poly": false, | является ли полигоном, логическое |
"requestUrl": "/service/wfs", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "gid" | |
}, | |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"layerType": "vector", | тип слоя vector или raster, строка |
"geometryType": "point", | тип геометрии, строка |
"access": { | права доступа |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"importObjects": true, | возможность на импорт объектов |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false | возможность удалять объекты |
}, | |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"fields": [{ | объект полей |
"id": 250, | id поля, целое число |
"name": "Field", | английское название поля, строка |
"rusName": "Поле", | русское название поля , строка |
"order": 1, | порядок следования в списке, целое число |
"title": false, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/редактировании объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "string", | тип, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
} | |
}, | |
"groupId": 12 | id группы |
}] | |
} |
Количество слоев
GET /layers/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
237Описание:
- количество слоев
Создание слоя
POST /layers
Структура запроса:
POST /layers?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
token— ключ доступаapiVersion— версия REST API 2.0
Пример запроса:
Формат: json
{ | |
"name": "Novyi-sloy", | английское название слоя, строка |
"title": "Новый слой", | заголовок, строка |
"groupId": 1053, | id группы, целое число |
"dataStoreId": 12, | id хранилища, целое число |
"сlusterId": 1, | id кластера, целое число |
"attributes": [{ | данные об атрибутах, массив |
"name": "attribute", | английское название, строка |
"rusName": "Атрибут", | русское название, строка |
"type": "string", | тип, строка |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/изменении объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"order": 1, | порядок, целое число |
"reference": false, | является ссылкой на таблицу, логическое |
"refTable": null, | id таблицы, целое число |
"refField": null, | id поля с первичным ключом в таблице, целое число |
"refFieldName": null | id поля с названием в таблице, целое число |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"service": "WFS", | сервис получения данных WMS/WFS, строка |
"fileName": "point", | тип геометрии, строка |
"isEditable": true, | является редактируемым, логическое |
"isStyleEditable": true, | можно редактировать стиль, логическое |
"styles": { | стили, объект |
"isBase": true | является ли стиль простым, логическое |
}, | |
"projection": "EPSG:4326", | проекция, строка |
"customFields": { | дополнительные поля, объект |
"field_1": { | название дополнительного поля |
"field_id": 41, | id поля, целое число |
"value": "1" | значение поля, строка |
} | |
}, | |
"serviceObjects": { | доп. настройка объектов обслуживания |
"turned": true, | включена ли, логическое |
"title_format": "{0} - {1}", | формат названия (совместимость со старыми версиям) |
"title_fields": [ | поля для формата названия (совместимость со старыми версиям) |
"name", | |
"count" | |
], | |
"field_mappings": [ | соответствие атрибутов и полей задания |
{ | |
"type": "Title", | тип (Title - для заголовка задания, Description - для описания задания, CustomField - для доп.поля задания) |
"field_id": null, | id доп.поля |
"format": "{0}", | формат |
"fields": [ | поля для формата |
"name" | |
] | |
}, | |
{ | |
"type": "Description", | |
"field_id": null, | |
"format": "{0}", | |
"fields": [ | |
"category" | |
] | |
}, | |
{ | |
"type": "CustomField", | |
"field_id": 10, | |
"format": "{0}", | |
"fields": [ | |
"color" | |
] | |
} | |
] | |
}, | |
"defaultAccess": [ | права на слой по умолчанию |
{ | |
"roleId": 10, | id роли |
"allRoles": false, | для всех ролей, логическое |
"organizationId": null, | id организации |
"allOrganizations": true, | для всех организаций, логическое |
"publicOrganizations": null, | true - для клиентских организаций, false - для не клиентских |
"read": true, | права на чтение |
"edit": false, | права на редактирование структуры |
"serviceObjects": true, | используется ли в заданиях |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false, | возможность удалять объекты |
"export": true | возможность экспортировать |
} | |
] | |
} |
Примечание:
В зависимости от выбранного типа геометрии в "styles" могут передаваться следующие параметры:
isBase— базовый стиль (логическое)isSimple— простой стиль (логическое)style— расширенный стиль (строка - описывается geocss)
Параметр service можно не передавать. Для полигонов и линий по умолчанию WMS, для точек WFS.
Параметр clusterId может передавать только главный администратор, если создает слой для конкретного кластера. Параметр может быть null.
Параметр projection можно не передавать. По умолчанию - EPSG:4326.
Доступные типы атрибутов:
string— строкаint— целое числоlong— большое целое числоboolean— логический типnum— вещественное числоdate— датаdateTime— дата и времяreference— связь с таблицей (refTable - id таблицы из списка, refField - id поля-ключа, refFieldName - id поля названия)systemcluster— связь с кластеромsystemcluster[]— связь с кластером с множественным выборомsystemorg— связь с организациейsystemorg[]— связь с организацией с множественным выборомsystemuser— связь с пользователемsystemuser[]— связь с пользователем с множественным выборомsystemrole[]— связь с ролью с множественным выборомsystemtasktype— связь с видом работ заданийsystemtasktype[]— связь с видом работ заданий с множественным выборомsystemtaskpriority— связь с приоритетом заданийsystemtaskpriority[]— связь с приоритетом заданий с множественным выборомrfid- RFID-метка
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 154, | id слоя, целое число |
"name": "Новый слой", | название слоя, строка |
"info": { | информация о слое, объект |
"id": 154, | id слоя, целое число |
"typeName": "test:novcyj_sloj_vw", | английское название слоя, строка |
"style": "polygon", | название стиля, строка |
"service": "WMS", | тип сервиса, WMS/WFS |
"poly": true, | является ли полигоном, логическое |
"requestUrl": "/service/wms", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "gid" | |
}, | |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"fields": [{ | информация об атрибутах, массив |
"id": 3452, | id атрибута, целое число |
"name": "parameter", | английское название атрибута, строка |
"rusName": "parameter", | русское название атрибута, строка |
"order": 1, | порядковый номер в списке, целое число |
"title": false, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/изменении объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "string", | тип, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"groupId": 42, | id группы, целое число |
"dataStoreId": 22, | id хранилища данных, целое число |
"order": 3, | порядковый номер в списке, целое число |
"geometryType": "multipolygon", | тип геометрии, строка |
"dataStoreName": "fail_store", | название хранилища, строка |
"layerType": "vector" | тип слоя, строка |
} |
Изменение слоя
PUT /layers/{layerId}
Структура запроса:
PUT /layers/365?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
layerId— id изменяемого слояtoken— ключ доступаapiVersion— версия REST API 2.0
Пример запроса:
Формат: json
{ | |
"id": 40, | id слоя, целое число |
"name": "workspace:noviysloi1_vw", | английское название, строка |
"title": "Новый слой", | русское название, строка |
"service": "WFS", | тип сервиса, WMS/WFS |
"groupId": 4, | id группы, целое число |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"styles": { | стили, объект |
"isBase": false, | является ли стиль базовым, логическое |
"isSimple": true, | является ли стиль простым, логическое |
"style": "*{\n mark: symbol(\"circle\");\n} | geocss стиль |
\n:mark{\n fill:#0000FF;\n | |
fill-opacity:1;\n size:7;\n\n}" | |
}, | |
"attributes": [{ | данные об атрибутах, массив |
"name": "attribute", | английское название, строка |
"rusName": "Атрибут", | русское название, строка |
"type": "string", | тип, строка |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/изменении объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"order": 1, | порядок, целое число |
"reference": false, | является ссылкой на таблицу, логическое |
"refTable": null, | id таблицы, целое число |
"refField": null, | id поля с первичным ключом в таблице, целое число |
"refFieldName": null | id поля с названием в таблице, целое число |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | - атрибуты, которые входят в заголовок, массив строк |
}, | |
"customFields": { | дополнительные поля, объект |
"field": { | название дополнительного поля |
"field_id": 501, | id поля, целое число |
"value": "" | значение поля, строка |
} | |
}, | |
"serviceObjects": { | доп. настройка объектов обслуживания |
"turned": true, | включена ли, логическое |
"mappingId": 1, | id настройки |
"geo_field": "the_geom", | атрибут и направление сортировки (совместимость со старыми версиям) |
"title_format": "{0} - {1}", | формат названия (совместимость со старыми версиям) |
"title_fields": [ | поля для формата названия (совместимость со старыми версиям) |
"name", | |
"count" | |
], | |
"field_mappings": [ | соответствие атрибутов и полей задания |
{ | |
"type": "Title", | тип (Title - для заголовка задания, Description - для описания задания, CustomField - для доп.поля задания) |
"field_id": null, | id доп.поля |
"format": "{0}", | формат |
"fields": [ | поля для формата |
"name" | |
] | |
}, | |
{ | |
"type": "Description", | |
"field_id": null, | |
"format": "{0}", | |
"fields": [ | |
"category" | |
] | |
}, | |
{ | |
"type": "CustomField", | |
"field_id": 10, | |
"format": "{0}", | |
"fields": [ | |
"color" | |
] | |
} | |
] | |
}, | |
"defaultAccess": [ | права на слой по умолчанию |
{ | |
"roleId": 10, | id роли |
"allRoles": false, | для всех ролей, логическое |
"organizationId": null, | id организации |
"allOrganizations": true, | для всех организаций, логическое |
"publicOrganizations": null, | true - для клиентских организаций, false - для не клиентских |
"read": true, | права на чтение |
"edit": false, | права на редактирование структуры |
"serviceObjects": true, | используется ли в заданиях |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false, | возможность удалять объекты |
"export": true | возможность экспортировать |
} | |
] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 154, | id слоя, целое число |
"name": "Новый слой", | название слоя, строка |
"info": { | информация о слое, объект |
"id": 154, | id слоя, целое число |
"typeName": "test:novcyj_sloj_vw", | английское название слоя, строка |
"style": "polygon", | название стиля, строка |
"service": "WMS", | тип сервиса, WMS/WFS |
"poly": true, | является ли полигоном, логическое |
"requestUrl": "/service/wms", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "gid" | |
}, | |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"fields": [{ | информация об атрибутах, массив |
"id": 3452, | id атрибута, целое число |
"name": "parameter", | английское название атрибута, строка |
"rusName": "parameter", | русское название атрибута, строка |
"order": 1, | порядковый номер в списке, целое число |
"title": false, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/изменения объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "string", | тип, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"groupId": 42, | id группы, целое число |
"dataStoreId": 22, | id хранилища данных, целое число |
"order": 3, | порядковый номер в списке, целое число |
"geometryType": "multipolygon", | тип геометрии, строка |
"dataStoreName": "fail_store", | название хранилища, строка |
"layerType": "vector" | тип слоя, строка |
} |
Изменение конкретных полей слоя
PATCH /layers/{layerId}
Структура запроса:
PATCH /layers/1413?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
layerId— id изменяемого слояtoken— ключ доступаapiVersion— версия REST API 2.0
Пример запроса:
Формат: json
{
"id": 40,
"name": "workspace:noviysloi1_vw",
"title": "Новый слой",
"service": "WFS",
"groupId": 4,
"isStyleEditable": true,
"styles": {
"isBase": false,
"isSimple": true,
"style": "*{\n mark: symbol(\"circle\");\n}
\n:mark{\n fill:#0000FF;\n
fill-opacity:1;\n size:7;\n\n}"
},
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"forUpsert": true,
"forSearch": true,
"view": true,
"htmlEscape": true,
"popupView": false,
"order": 1,
"reference": false,
"refTable": null,
"refField": null,
"refFieldName": null
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"customFields": {
"field": {
"field_id": 501,
"value": ""
}
},
"serviceObjects": {
"turned": true,
"mappingId": 1,
"geo_field": "the_geom",
"title_format": "{0} - {1}",
"title_fields": [
"name",
"count"
],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
},
{
"type": "Description",
"field_id": null,
"format": "{0}",
"fields": [
"category"
]
},
{
"type": "CustomField",
"field_id": 10,
"format": "{0}",
"fields": [
"color"
]
}
]
},
"defaultAccess": [
{
"roleId": 10,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"serviceObjects": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false,
"export": true
}
]
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"clusterId": 1,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}Удаление слоя
DELETE /layers/{layerId}
Структура запроса:
DELETE /layers/14?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id удаляемого слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}Экспорт слоев
Ограничение: Доступно только для пользователей с правами администратора
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Список слоев, используемый в качестве объектов обслуживания
GET /layers/serviceobjects
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 32, | id слоя, целое число |
"name": "Слой 1", | название слоя, строка |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"info": { | информация по слою, объект |
"id": 32, | id слоя, целое число |
"typeName": "workspace:sloj_1_vw", | английское название слоя, строка |
"style": "point", | название стиля, строка |
"service": "WFS", | тип сервиса, WMS/WFS |
"poly": false, | является ли полигоном, логическое |
"requestUrl": "/service/wfs", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "gid" | |
} | |
} | |
] |
Информация по слою
GET /layers/{layerId}
Структура запроса:
GET /layers/136?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"layer": { | объект |
"order": 4, | порядковый номер в списке, целое число |
"layer": { | объект слоя |
"id": 29, | id слоя, целое число |
"name": "Сервисные объекты 1", | русское название слоя, строка |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"info": { | информация по слою, объект |
"id": 29, | id слоя, целое число |
"typeName": "workspace:servisncye_obcaektcy_1_vw", | английское название слоя, строка |
"style": "servisncye_obcaektcy_1_1622626848248_style", | название стиля, строка |
"service": "WMS", | тип сервиса, WMS/WFS |
"poly": false, | является ли полигоном, логическое |
"requestUrl": "/service/wms", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "fid", | поле для первичного ключа, строка |
"eisInfo": { | данные о наличии медиа информации, объект |
"hasEis": true, | есть ли медиа информация, логическое |
"pkField": "fid", | |
"hasType_photo": true, | есть ли фотографии, логическое |
"edit_photo": true, | можно ли редактировать фотографии, логическое |
"hasType_file": true, | есть ли файлы, логическое |
"edit_file": true | можно ли редактировать файлы, логическое |
} | |
}, | |
"fields": [{ | массив полей |
"id": 94, | id поля, целое число |
"name": "naimenovan", | английское название поля, строка |
"rusName": "Наименование", | русское название поля, строка |
"order": 1, | порядок следования в списке, целое число |
"title": true, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/редактировании объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "String", | тип поля, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
},...], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"customFields": null, | дополнительные поля, строка |
"geometryType": "multipoint", | тип геометрии, строка |
"dataStoreName": "system_store", | название хранилища данных, строка |
"isRaster": false, | является ли космоснимком, логическое |
"layerType": "vector", | тип слоя, строка |
"access": { | права текущего пользователя на слой |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"importObjects": true, | возможность на импорт объектов |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false | возможность удалять объекты |
}, | |
"cluster": null | кластер, строка |
} | |
}, | |
"groupId": 2 | id группы |
} |
Информация по слою, исключая данные о группе слоя
GET /layers/{layerId}/info
Структура запроса:
GET /layers/132/info?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"layer": { | объект слоя |
"id": 29, | id слоя, целое число |
"name": "Сервисные объекты 1", | русское название слоя, строка |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"info": { | информация по слою, объект |
"id": 29, | id слоя, целое число |
"typeName": "workspace:servisncye_obcaektcy_1_vw", | английское название слоя, строка |
"style": "servisncye_obcaektcy_1_1622626848248_style", | название стиля, строка |
"service": "WMS", | тип сервиса, WMS/WFS |
"poly": false, | является ли полигоном, логическое |
"requestUrl": "/service/wms", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "fid", | поле для первичного ключа, строка |
"eisInfo": { | данные о наличии медиа информации, объект |
"hasEis": true, | есть ли медиа информация, логическое |
"pkField": "fid", | |
"hasType_photo": true, | есть ли фотографии, логическое |
"edit_photo": true, | можно ли редактировать фотографии, логическое |
"hasType_file": true, | есть ли файлы, логическое |
"edit_file": true | можно ли редактировать файлы, логическое |
} | |
}, | |
"fields": [{ | массив полей |
"id": 94, | id поля, целое число |
"name": "naimenovan", | английское название поля, строка |
"rusName": "Наименование", | русское название поля, строка |
"order": 1, | порядок следования в списке, целое число |
"title": true, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/редактировании объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "String", | тип поля, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
},...], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"customFields": null, | дополнительные поля, строка |
"geometryType": "multipoint", | тип геометрии, строка |
"dataStoreName": "system_store", | название хранилища данных, строка |
"isRaster": false, | является ли космоснимком, логическое |
"layerType": "vector", | тип слоя, строка |
"access": { | права доступа |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"importObjects": true, | возможность на импорт объектов |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false | возможность удалять объекты |
}, | |
"cluster": null | кластер, строка |
} | |
} |
Статус: 403 - у вас нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Информация о слоях
Граница слоя
GET /layers/{layerId}/bbox
Структура запроса:
GET /layers/199/bbox?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
layerId— id слояapiVersion— версия API, 2.0token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"minX": 49.053, | минимальный x, вещественное число |
"maxX": 49.24, | минимальный y, вещественное число |
"minY": 55.739, | максимальный x, вещественное число |
"maxY": 55.863, | максимальный y, вещественное число |
"projection": "EPSG:4326" | код проекции, строка |
} |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Метаданные слоя
GET /layers/{layerId}/metadata
Структура запроса:
GET /layers/179/metadata?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"metadata": { | метаданные, объект |
"id": 179, | id слоя, целое число |
"owner": "Владелец", | владелец слоя, строка |
"dataCreate": "2011.12.28 09.47", | дата создания, строка |
"dataUpdate": "2011.12.28 09.47", | дата обновления, строка |
"itemsCount": 45, | количество объектов, целое число |
"type": { | тип метаданных, объект |
"id": 1, | id типа, целое число |
"name": "Космоснимки", | название типа, строка |
"fieldList": [ | массив полей |
{ | |
"id": 1, | id поля, целое число |
"name": "Облачность", | название, строка |
"order": 1, | порядок отображения, целое число |
"inTable": true, | содержится ли значение в основной таблице, логическое |
"inTableName": "clouds", | название поля в основной таблице |
"fieldType": { | тип поля, объект |
"id": 2, | id типа, целое число |
"name": "Облачность", | название типа, строка |
"control": "input_integer", | управляющий элемент, который используется, строка |
"geomType": null, | тип геометрии, строка |
"library": false, | нужно ли искать значение поля в словаре, логическое |
"libraryData": {} | данные словаря, объект |
}, | |
"necessary": false | является ли обязательным, логическое |
}] | |
}, | |
"additionalFieldValues": [ | массив дополнительных полей |
{ | |
"field": { | объект поля |
"id": 4, | id поля, |
"name": "name", | название, строка |
"order": 6, | порядок отображения, целое число |
"inTable": false, | содержится ли значение в основной таблице, логическое |
"inTableName": null, | название поля в основной таблице |
"fieldType": { | тип поля, объект |
"id": 3, | id: типа, целое число |
"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" | |
} | |
} | |
} |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Атрибуты слоя
GET /layers/{layerId}/attributes
Структура запроса:
GET /layers/199/attributes?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"attributes": [{ | массив атрибутов |
"name": "pole1", | название атрибута, строка |
"type": "string", | тип атрибута, строка |
"reference": false, | является ссылкой на таблицу, логическое |
"refTable": null, | id таблицы, целое число |
"refField": null, | id поля с первичным ключом в таблице, целое число |
"refFieldName": null, | id поля с названием в таблице, целое число |
"geometryField": false | является ли полем с геометрией, логическое |
}], | |
"geometryType": "POLYGON", | тип геометрии (POINT, LINE, POLYGON), строка |
"realGeometryType": "MULTIPOLYGON" | реальный тип геометрии (POINT, MULTIPOINT, LINE, MULTILINE, POLYGON, MULTIPOLYGON), строка |
} |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Настойка слоя для использования в качестве объектов обслуживания
GET /layers/{layerId}/serviceobjects
Структура запроса:
GET /layers/136/serviceobjects?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 1, | id настройки |
"layer": { | слой |
"id": 29, | id слоя |
"name": "servisncye_obcaektcy_1_vw" | английское название слоя |
}, | |
"search_params": "size=10&default_operator=AND", | доп.параметры поиска (совместимость со старыми версиям) |
"search_field": "name", | поиск по атрибуту (совместимость со старыми версиям) |
"geo_field": "the_geom", | поле с геометрией (совместимость со старыми версиям) |
"sort": "name:asc", | атрибут и направление сортировки (совместимость со старыми версиям) |
"title_format": "{0} - {1}", | формат названия (совместимость со старыми версиям) |
"title_fields": [ | поля для формата названия (совместимость со старыми версиям) |
"name", | |
"count" | |
], | |
"fields": [ | все используемые атрибуты |
"name", | |
"count", | |
"category", | |
"color", | |
"the_geom.coordinates" | |
], | |
"field_mappings": [ | соответствие атрибутов и полей задания |
{ | |
"type": "Title", | |
"field_id": null, | |
"format": "{0}", | |
"fields": [ | |
"name" | |
] | |
}, | |
{ | |
"type": "Description", | |
"field_id": null, | |
"format": "{0}", | |
"fields": [ | |
"category" | |
] | |
}, | |
{ | |
"type": "CustomField", | |
"field_id": 10, | |
"format": "{0}", | |
"fields": [ | |
"color" | |
] | |
} | |
] | |
} |
Права на слой по умолчанию
GET /layers/{layerId}/defaultaccess
Структура запроса:
GET /layers/136/defaultaccess?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"id": 9, | id правила |
"layerId": 27, | id слоя |
"roleId": 10, | id роли |
"roleName": "Администратор организации", | название роли |
"allRoles": false, | для всех ролей, логическое |
"organizationId": null, | id организации |
"organizationName": null, | название организации |
"allOrganizations": true, | для всех организаций, логическое |
"publicOrganizations": null, | true - для клиентских организаций, false - для не клиентских |
"read": true, | права на чтение |
"edit": false, | права на редактирование структуры |
"serviceObjects": true, | используется ли в заданиях |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false, | возможность удалять объекты |
"export": true | возможность экспортировать |
} | |
] |
Стиль слоя
GET /layers/{layerId}/style
Структура запроса:
GET /layers/199/style?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"style": { | объект стиля |
"styleName": "Polygon", | название стиля, строка |
"geoCss": "*{\n mark: symbol(\"circle\");\n}", | css стиля, строка |
"base": false, | является ли базовым, логическое |
"simple": true, | является ли простым, логическое |
"styleSld": " " | sld стиля, строка |
} | |
} |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Стили слоев
GET /layers/styles/base
Структура запроса:
GET /layers/styles/base?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"styleName": "point", | название стиля, строка |
"geoCss": "* {\n mark-opacity: 1.0;\n}", | css стиля, строка |
"base": true, | является ли базовым, логическое |
"simple": false, | является ли простым, логическое |
"styleSld": "" | sld стиля, строка |
},...] |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Тип геометрии стиля слоя
GET /layers/styles/base/{geomType}
Структура запроса:
GET /layers/styles/base/point?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
geomType— тип геометрииtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"style":{ | информация о стиле, объект |
"styleName": "point", | название стиля, строка |
"geoCss": "* {\n mark-opacity: 1.0;\n}", | css стиля, строка |
"base": true, | является ли базовым, логическое |
"simple": false, | является ли простым, логическое |
"styleSld": "" | sld стиля, строка |
} | |
} |
Статус: 404 - слой не найден
Формат: text/plain
Содержит описание ошибки
Статус: 403 - нет доступа к данному слою
Формат: text/plain
Содержит описание ошибки
Тип геометрии слоя
GET /layers/{layerId}/geometrytype
Структура запроса:
GET /layers/25/geometrytype?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"geometryType":"MULTIPOLYGON" | название типа геометрии |
} |
Кластеры слоя
GET /layers/{layerId}/cluster
Структура запроса:
GET /layers/25/cluster?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 11179, | id слоя, целое число |
"turned": true, | кластеризация включена, логическое |
"maxZoom": 16, | максимальный зум для кластеризации, целое число |
"parameters": [{ | параметры, массив |
"id": 401, | id, целое число |
"objectsCount": 0, | количество объектов, целое число |
"icon": { | иконка, объект |
"id": 99, | id иконки, целое число |
"name": "red", | название иконки, строка |
"width": 73, | ширина, целое число |
"height": 72 | высота, целое число |
}, | |
"labelColor": "ffffff" | цвет подписи, строка |
}] | |
} |
Индексация слоя
GET /layers/{layerId}/reindex
Структура запроса:
GET /layers/34/reindex?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступаwithCreating— пересоздание индекса полностью (с удалением)
Ответ
Статус: 200 - успешное выполнение
Формат: json
Принят запрос на индексацию
Загрузка слоя из файла
Загрузка файла
POST /layers/upload
Структура запроса:
POST /layers/upload?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....Описание:
- тело файла
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"status": "ok", | статус ответа |
"data": ["p18hps8iga1pi81aot89i18d81of87.zip"] | uuid загруженного файла |
} |
Получение параметров только что загруженного файла слоя
GET /layers/upload/{uuid}
Структура запроса:
GET /layers/upload/p18hps8iga1pi81aot89i18d81of87.zip?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
uuid— uuid файла слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"uuid": "0e3e43d0-fabc-42a7-87ce-2dd6fba1eefb.zip", | uuid файла в кеше, строка |
"type": "vector", | тип слоя (vector или raster), строка |
"geometryType": "multipolygon", | тип геометрии, строка |
"withProjection": true, | есть ли в архиве файл с геометрией, логическое |
"attributes": [{ | массив атрибутов |
"name": "the_geom", | название атрибута, строка |
"rusName": "the_geom", | русское название атрибута, строка |
"type": "MultiPolygon", | тип, строка |
"isGeometryField": true | является ли полем с геометрией, логическое |
}] | |
} |
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл слоя не загружен
Формат: text/plain
Содержит описание ошибки
Отправка параметров для загруженного файла слоя
POST /layers/uploaded
Структура запроса:
POST /layers/uploaded?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
token— ключ доступаapiVersion— версия REST API 2.0
Пример запроса:
Формат: json
{ | |
"name": "Novyi-sloy", | английское название слоя, строка |
"title": "Новый слой", | заголовок, строка |
"groupId": 1053, | id группы, целое число |
"dataStoreId": 12, | id хранилища, целое число |
"attributes": [{ | данные об атрибутах, массив |
"name": "attribute", | английское название, строка |
"rusName": "Атрибут", | русское название, строка |
"type": "string", | тип, строка |
"forUpsert": true, | показывать ли поле при создании/изменении объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"view": true, | показывать ли поле, логическое |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"order": 1 | порядок, целое число |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"service": "WFS", | сервис получения данных WMS/WFS, строка |
"fileName": "p18hps8iga1pi81aot89i18d81of87.zip", | uuid загруженного слоя, строка |
"isEditable": true, | является редактируемым, логическое |
"isStyleEditable": true, | можно редактировать стиль, логическое |
"styles": { | стили, объект |
"isBase": true | является ли стиль простым, логическое |
}, | |
"projection": "EPSG:4326", | проекция, строка |
"customFields": null | дополнительные поля, объект |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 154, | id слоя, целое число |
"name": "Новый слой", | название слоя, строка |
"info": { | информация о слое, объект |
"id": 154, | id слоя, целое число |
"typeName": "test:novcyj_sloj_vw", | английское название слоя, строка |
"style": "polygon", | название стиля, строка |
"service": "WMS", | тип сервиса, WMS/WFS |
"poly": true, | является ли полигоном, логическое |
"requestUrl": "/service/wms", | url для запроса, строка |
"tileSize": 256, | размер тайла, целое число |
"geomField": "the_geom", | название поля с геометрией, строка |
"pkField": "gid" | |
}, | |
"isEditable": true, | является ли редактируемым, логическое |
"isStyleEditable": true, | можно ли редактировать стиль, логическое |
"owner": 6, | id создателя слоя, целое число |
"clusterId": 1, | id кластера или null, целое число |
"system": false, | является ли слой системным, логическое |
"systemCode": null, | код для системного слоя, строка |
"fields": [{ | информация об атрибутах, массив |
"id": 3452, | id атрибута, целое число |
"name": "parameter", | английское название атрибута, строка |
"rusName": "parameter", | русское название атрибута, строка |
"order": 1, | порядковый номер в списке, целое число |
"title": false, | является ли заголовком, логическое |
"view": true, | показывать ли поле, логическое |
"forUpsert": true, | показывать ли поле при создании/редактировании объекта, логическое |
"forSearch": true, | будет ли использоваться поле для поиска по объектам слоя, логическое |
"type": "string", | тип, строка |
"htmlEscape": true, | экранировать ли html, логическое |
"popupView": false, | показывать ли во всплывающем окошке, логическое |
"reference": false | является ли ссылкой на таблицу, логическое |
}], | |
"titleFields": { | заголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["name"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"subTitleFields": { | подзаголовок слоя |
"format": "{0}", | формат заголовка, строка |
"fields": ["category"] | атрибуты, которые входят в заголовок, массив строк |
}, | |
"groupId": 42, | id группы, целое число |
"dataStoreId": 22, | id хранилища данных, целое число |
"order": 3, | порядковый номер в списке, целое число |
"geometryType": "multipolygon", | тип геометрии, строка |
"dataStoreName": "fail_store", | название хранилища, строка |
"layerType": "vector" | тип слоя, строка |
} |
Статус: 403 - нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 - файл не загружен
Формат: text/plain
Содержит описание ошибки
Загрузка слоя через WS
Необходимо подключиться по WebSocket:
wss://site.domain/ws?token=&lang=&apiVersion=2.0Поля:
token— ключ доступаlang— 2-х значное обозначение языка: ru, en ит.д.apiVersion— версия REST API 2.0
Получение параметров для загруженного файла слоя через WS
Команда через WebSocket:
{
"command":"GET_UPLOADED_LAYER_INFO",
"data":{
"fileUuid":"{uuid}"
}
}Поля:
uuid— uuid файла слоя
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"command": "HTTP_RESPONSE", | |
"data": { | |
"status": 200, | |
"body": null, | |
"json": { | |
"uuid": "0fa244a6-aa1c-44c9-b878-075e149817c2.zip", | uuid файла в кеше, строка |
"type": "vector", | тип слоя (vector или raster), строка |
"geometryType": "multipoint", | тип геометрии, строка |
"withProjection": true, | есть ли в архиве файл с геометрией, логическое |
"attributes": [{ | массив атрибутов |
"name": "the_geom", | название атрибута, строка |
"rusName": "the_geom", | русское название атрибута, строка |
"type": "MultiPoint", | тип, строка |
"isGeometryField": true | является ли полем с геометрией, логическое |
}] | |
} | |
} | |
} |
Статус: 403 - нет доступа к загрузке слоев
Формат: json
Содержит описание ошибки
Статус: 404 - файл слоя не загружен
Формат: json
Содержит описание ошибки
Отправка параметров для загруженного файла слоя через WS
Команда через WebSocket:
{
"command":"CREATE_LAYER_FROM_FILE",
"data":{
"name": "Novyi-sloy",
"title": "Новый слой",
"groupId": 1053,
"dataStoreId": 12,
"attributes": [{
"name": "attribute",
"rusName": "Атрибут",
"type": "string",
"forUpsert": true,
"forSearch": true,
"view": true,
"htmlEscape": true,
"popupView": false,
"order": 1
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"service": "WFS",
"fileName": "p18hps8iga1pi81aot89i18d81of87.zip",
"isEditable": true,
"isStyleEditable": true,
"styles": {
"isBase": true
},
"projection": "EPSG:4326",
"customFields": null
}
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"command": "HTTP_RESPONSE",
"data": {
"status": 200,
"body": null,
"json": {
"id": 154,
"name": "Новый слой",
"info": {
"id": 154,
"typeName": "test:novcyj_sloj_vw",
"style": "polygon",
"service": "WMS",
"poly": true,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
},
"isEditable": true,
"isStyleEditable": true,
"owner": 6,
"clusterId": 1,
"system": false,
"systemCode": null,
"fields": [{
"id": 3452,
"name": "parameter",
"rusName": "parameter",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "string",
"htmlEscape": true,
"popupView": false,
"reference": false
}],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"groupId": 42,
"dataStoreId": 22,
"order": 3,
"geometryType": "multipolygon",
"dataStoreName": "fail_store",
"layerType": "vector"
}
}
}Статус: 403 - нет доступа к загрузке слоев
Формат: json
Содержит описание ошибки
Статус: 404 - файл не загружен
Формат: json
Содержит описание ошибки
Права доступа к слоям
Список прав доступа
Ограничение: Доступно только для пользователей с правами администратора
GET /layers/accesses
Структура запроса:
GET /layers/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"userId": 60, | id пользователя, целое число |
"layerId": 41, | id слоя, целое число |
"groupId": 3, | id группы, целое число |
"organizationId": 1, | id организации, целое число |
"layerOrder": 9, | порядковый номер слоя, целое число |
"groupOrder": 6, | порядковый номер группы, целое число |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false, | возможность удалять объекты |
"uniqueId": 257698053339, | уникальный id, целое число |
"layerName": "Название слоя", | название слоя, строка |
"groupName": "Название группы", | название группы, строка |
"userLogin": "login", | пользовательский логин, строка |
"userName": "ФИО пользователя" | имя пользователя, строка |
},...] |
Количество прав доступа
Ограничение: Доступно только для пользователей с правами администратора
GET /layers/accesses/count
Структура запроса:
GET /layers/accesses/count?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
342Описание:
- количество прав доступа
Создание права доступа
Ограничение: Доступно только для пользователей с правами администратора
POST /layers/accesses
Структура запроса:
POST /layers/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"layerId": 36, | id слоя, целое число |
"userId": 60, | id пользователя, целое число |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false | возможность удалять объекты |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"read": true,
"edit": true,
"importObjects": true,
"serviceObjects": false,
"export": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false,
"userName": "Пользователь",
"groupId": 4,
"userId": 110,
"layerName": "Слой"
}Экспорт прав доступа
Ограничение: Доступно только для пользователей с правами администратора
GET /layers/accesses.xlsx
Структура запроса:
GET /layers/accesses.xlsx?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Хранилища слоев
GET /layers/datastores
Структура запроса:
GET /layers/datastores?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 213, | id хранилища, целое число |
"name": "for_delete", | наименование хранилища, строка |
"host": "178.213.247.170", | хост, строка |
"database": "ssc", | название базы данных, строка |
"schema": "rcku" | название схемы, с которой работает хранилище, строка |
},...] |
Группы слоев
Список групп слоев
GET /groups
Структура запроса:
GET /groups?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"groups": [{ | массив объектов с информацией по группе |
"id": 1, | id группы, целое число |
"name": "Группа 1", | название группы, строка |
"order": "1" | порядковый номер группы в списке, целое число |
}], | |
"mapExtent": { | область видимости карты, объект |
"id": 123, | |
"name": "default", | |
"extent": { | |
"minX": 37.1722412109375, | |
"minY": 55.64272408255231, | |
"maxX": 38.13354492187501, | |
"maxY": 55.93612557332707, | |
"projection": "EPSG:4326" | |
}, | |
"main": true | |
} | |
} |
Список групп, включая полную информацию по принадлежащим им слоям
GET /groups/withLayers
Структура запроса:
GET /groups/withLayers?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"clusterId": null,
"system": false,
"systemCode": null,
"view": true,
"layerType": "vector",
"geometryType": "point",
"fields": [{
"id": 56,
"name": "issue_link",
"rusName": "ID",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "int",
"htmlEscape": false,
"popupView": false,
"reference": false
}, ...],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"info": {
"id": 2,
"typeName": "workspace:organization_layer_new_issues",
"style": "cku_departments_news_incident_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
}
},
"order": 2,
"groupId": 1
}, ... ]
}, ...],
"mapExtent": {
"id": 123,
"name": "default",
"extent": {
"minX": 37.1722412109375,
"minY": 55.64272408255231,
"maxX": 38.13354492187501,
"maxY": 55.93612557332707,
"projection": "EPSG:4326"
},
"main": true
}
}Группы доступные пользователю
GET /users/groups
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"groups": [{ | группы пользователей, массив |
"id": 1, | id группы, целое число |
"name": "Группа слоя", | название группы, строка |
"order": 1 | порядковый номер группы, целое число |
},... | |
]} |
Поиск списка групп, включая полную информацию по принадлежащим им слоям
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"clusterId": null,
"system": false,
"systemCode": null,
"view": true,
"layerType": "vector",
"geometryType": "point",
"fields": [{
"id": 56,
"name": "issue_link",
"rusName": "ID",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "int",
"htmlEscape": false,
"popupView": false,
"reference": false
}, ...],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"info": {
"id": 2,
"typeName": "workspace:organization_layer_new_issues",
"style": "cku_departments_news_incident_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
}
},
"order": 2,
"groupId": 1
}, ... ]
}],
"mapExtent": {
"id": 123,
"name": "default",
"extent": {
"minX": 37.1722412109375,
"minY": 55.64272408255231,
"maxX": 38.13354492187501,
"maxY": 55.93612557332707,
"projection": "EPSG:4326"
},
"main": true
}
}Список групп, включая краткую информацию по принадлежащим им слоям
GET /groups/shortdata/withLayers
Структура запроса:
GET /groups/shortdata/withLayers?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания",
"owner": 6,
"clusterId": null,
"system": false,
"systemCode": null,
"view": true,
"info": {
"id": 2,
"typeName": "workspace:organization_layer_new_issues",
"style": "cku_departments_news_incident_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
}
},
"order": 2,
"groupId": 1
}, ... ]
}, ...],
"mapExtent": {
"id": 123,
"name": "default",
"extent": {
"minX": 37.1722412109375,
"minY": 55.64272408255231,
"maxX": 38.13354492187501,
"maxY": 55.93612557332707,
"projection": "EPSG:4326"
},
"main": true
}
}Поиск по названию
GET /groups
Структура запроса:
GET /groups?name=Пункт?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
name— слово/фраза, которая входит в название списка группtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"groups": [{ | массив объектов с информацией по группе |
"id": 32, | id группы, целое число |
"name": "Группа 1", | название группы, строка |
"order": "1" | порядковый номер группы в списке, целое число |
}], | |
"mapExtent": { | |
"id": 123, | |
"name": "default", | |
"extent": { | |
"minX": 37.1722412109375, | |
"minY": 55.64272408255231, | |
"maxX": 38.13354492187501, | |
"maxY": 55.93612557332707, | |
"projection": "EPSG:4326" | |
}, | |
"main": true | |
} | |
} |
Поиск по id
GET /groups/{groupId}
Структура запроса:
GET /groups/32?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
groupId— id группыtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"group": { | группа, объект |
"id": 32, | id группы, целое число |
"name": "Базовые слои", | название группы, строка |
"order": 1 | порядок группы в списке |
} | |
} |
Группа слоев, включая полную информацию по принадлежащим ей слоям
GET /groups/{groupId}/withLayers
Структура запроса:
GET /groups/32/withLayers?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
groupId— id группыtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"group": {
"id": 1,
"name": "Задания",
"order": 3,
"system": false,
"groupLayers": [{
"layer": {
"id": 2,
"name": "Новые задания"
"isEditable": false,
"isStyleEditable": false,
"owner": 6,
"clusterId": null,
"system": false,
"systemCode": null,
"view": true,
"layerType": "vector",
"geometryType": "point",
"fields": [{
"id": 56,
"name": "issue_link",
"rusName": "ID",
"order": 1,
"title": false,
"view": true,
"forUpsert": true,
"forSearch": true,
"type": "int",
"htmlEscape": false,
"popupView": false,
"reference": false
}, ...],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["category"]
},
"info": {
"id": 2,
"typeName": "workspace:organization_layer_new_issues",
"style": "cku_departments_news_incident_style",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms",
"tileSize": 256,
"geomField": "the_geom",
"pkField": "gid"
}
},
"order": 2,
"groupId": 1
}, ... ]
}
}Формат: text/plain
Содержит описание ошибки
Создание группы слоя
Ограничение: Доступно только для пользователей с правами администратора
POST /layers/groups
Структура запроса:
POST /layers/groups?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"name": "Название новой группы слоев" | название группы, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 32, | id группы, целое число |
"name": "Населенные пункты", | название группы, строка |
"order": "1" | порядковый номер группы, целое число |
} |
Сохранение порядка группы слоя
Ограничение: Доступно только для пользователей с правами администратора
POST /layers/groups/ordering
Структура запроса:
POST /layers/groups/ordering?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"orderings": [{ | порядок групп слоев, объект |
"id": 1093, | id группы, целое число |
"order": 1 | порядок группы, целое число |
}, | |
{ | |
"id": 413, | id группы, целое число |
"order": 2 | порядок группы, целое число |
},…] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
Изменение группы слоя
Ограничение: Доступно только для пользователей с правами администратора
PUT /layers/groups/{id}
Структура запроса:
PUT /layers/groups/27?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id группы слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 27, | id группы, целое число |
"name": "Новое название группы слоя", | название группы, строка |
"order": 1 | порядковый номер группы, целое число |
} |
Удаление группы слоя
Ограничение: Доступно только для пользователей с правами администратора
DELETE /layers/groups/{id}
Структура запроса:
DELETE /layers/groups/27?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id группы слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Экспорт групп слоя
Ограничение: Доступно только для пользователей с правами администратора
GET /layers/groups.xlsx
Структура запроса:
GET /layers/groups.xlsx?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Права организаций на группы
Список прав на группы
Ограничение: Доступно только для пользователей с правами администратора
GET /organizations/groups
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"organizationId": 1, | id организации, целое число |
"groupId": 13, | id группы, целое число |
"organizationName": "Министерство по ЧС", | название организации, строка |
"groupName": "Название группы", | название группы, строка |
"read": false | доступна к просмотру, логическое |
},...] |
Количество прав на группы
Ограничение: Доступно только для пользователей с правами администратора
GET /organizations/groups/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
56Описание:
- количество прав на группы, целое число
Создание права на группу
Ограничение: Доступно только для пользователей с правами администратора
POST /organizations/groups
Пример запроса:
Формат: json
{ | |
"groupId": 13, | id группы, целое число |
"organizationId": 1, | id организации, целое число |
"read": true | доступна к просмотру, логическое |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
Право на группу добавлено
Экспорт прав на группу
Ограничение: Доступно только для пользователей с правами администратора
GET /organizations/groups.xlsx
Ответ
Статус: 200 - успешное выполнение
Формат: json
Возвращает бинарный файл
Объекты слоя
Создание объекта слоя
POST /layers/{layerId}/features
Структура запроса:
POST /layers/145/features?apiVersion=2.0&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояapiVersion— версия API, 2.0token— ключ доступа
Пример запроса:
Формат: json
{ | |
"attributes": [ | список атрибутов |
{ | |
"name": "naimenovan", | название атрибута, строка |
"type": "string", | тип атрибута, строка |
"value": "Мытищи" | значение, строка |
}, | |
{ | |
"name": "int", | название файла, строка |
"type": "int", | |
"value": "1" | |
}, | |
{ | |
"name": "float", | название фотографии, строка |
"type": "double", | |
"value": "2.2" | |
}, | |
{ | |
"name": "datetime", | |
"type": "dateTime", | |
"value": 1623158460000 | |
}, | |
{ | |
"name": "date", | |
"type": "date", | |
"value": "06.08.2021" | |
}, | |
{ | |
"name": "date_timestamp", | |
"type": "date", | |
"value": 1626739200000 | |
}, | |
{ | |
"name": "logicheskoe", | |
"type": "boolean", | |
"value": true | |
} | |
], | |
"geometry": { | объект геометрии |
"type": "MultiPoint", | |
"coordinates": [[64.3359375,60.58696734225869]] | |
}, | |
"files": [{ | список файлов |
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc", | uuid загруженной фотографии, строка |
"name": "gloreg.doc" | |
}], | |
"pages": [{ | веб-страницы |
"url": "http://www.url.com", | адрес, строка |
"description": "Веб-страница", | описание, строка |
"size": { | размер |
"width": 640, | ширина, целое число |
"height": 360 | высота, целое число |
} | |
}], | |
"photos": [{ | список фотографий |
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg", | uuid загруженного файла, строка |
"name": "Lighthouse.jpg" | |
}] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}Список возможных значений для полей, связанных с таблицами
GET /layers/{layerId}/fields/{attrName}/values
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"refValue": 1, | id значения |
"refValueName": "Название1" | заголовок |
} | |
] |
Изменение объекта слоя
PUT /layers/{layerId}/features/{featureId}
Структура запроса:
PUT /layers/154/features/3?apiVersion=2.0&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояfeatureId— id объектаapiVersion— версия API, 2.0token— ключ доступа
Пример запроса:
Формат: json
{ | |
"attributes": [ | список атрибутов |
{ | |
"name": "naimenovan", | название атрибута, строка |
"type": "string", | тип атрибута, строка |
"value": "Мытищи1" | значение, строка |
}, | |
{ | |
"name": "int", | |
"type": "int", | |
"value": "1" | |
}, | |
{ | |
"name": "float", | |
"type": "double", | |
"value": "2.2" | |
}, | |
{ | |
"name": "datetime", | |
"type": "dateTime", | |
"value": 1623158460000 | |
}, | |
{ | |
"name": "date", | |
"type": "date", | |
"value": "06.08.2021" | |
}, | |
{ | |
"name": "date_timestamp", | |
"type": "date", | |
"value": 1626739200000 | |
}, | |
{ | |
"name": "logicheskoe", | |
"type": "boolean", | |
"value": true | |
} | |
], | |
"geometry": { | объект геометрии |
"type": "MultiPoint", | |
"coordinates": [[64.3359375,60.58696734225869]] | |
}, | |
"removeGeometry": false, | нужно ли удалить геометрию объекта |
"files": [{ | список новых файлов |
"uuid": "b3tbt4tuj46n4yummmm1n8jg7.doc", | uuid загруженного файла, строка |
"name": "gloreg.doc" | |
}], | |
"removeFiles": [5,6], | массив id удаляемых файлов |
"pages": [{ | новые веб-страницы |
"url": "http://www.url.com", | адрес, строка |
"description": "Веб-страница1", | описание, строка |
"size": { | размер |
"width": 640, | ширина, целое число |
"height": 360 | высота, целое число |
} | |
}], | |
"removePages": [1], | массив id удаляемых веб-страниц |
"photos": [{ | список новых фотографий |
"uuid": "4345hyhukujh4ju5uyyjk7u5jgg124a5.jpg", | uuid загруженной фотографии, строка |
"name": "Lighthouse.jpg" | |
}], | |
"removePhotos": [4] | массив id удаляемых фотографий |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}Изменение конкретных полей объекта слоя
Примечание: Пример с прикреплением только что загруженного изображения и удалением старого. Доступны любые комбинации полей из PUT запроса
PATCH /layers/{layerId}/features/{featureId}
Структура запроса:
PATCH /layers/154/features/3?apiVersion=2.0&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояfeatureId— id объектаapiVersion— версия API, 2.0token— ключ доступа
Пример запроса:
Формат: json
{ | |
"photos": [{ | список фотографий |
"uuid": "p19borhjnvfm31nuaaja1dkfa335.png", | uuid фотографии, строка |
"name": "new_photo.png" | название фотографии, строка |
}], | |
"removePhotos": [5,6] | массив id удаляемых фотографий |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}Удаление объекта слоя
DELETE /layers/{layerId}/features/{featureId}
Структура запроса:
DELETE /layers/154/features/3?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id удаляемого слояfeatureId— id объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}Добавление медиа файлов к объекту
PATCH /layers/{layerId}/features/{featureId}/files
Структура запроса:
PATCH /layers/145/features/345/files?apiVersion=2.0&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояfeatureId— id объектаapiVersion— версия API, 2.0token— ключ доступа
Пример запроса:
Формат: json
{ | |
"photos": [ | блок с фотографиями |
{ | |
"isUrl": true, | передается ли в виде url |
"path": "/department_files/photos/2022_07_22_15-50_688ead68-ee2d-1004-8c84-f7a444399106.jpg", | путь на диске или url (внутри системы можно без домена) |
| |
"fileName": "2022_07_22_15-50_688ead68-ee2d-1004-8c84-f7a444399106.jpg" | название файла |
| |
}, | |
{ | |
"isUrl": false, | |
"path": "/var/www/mapadmin/htdocs/department_files/photos/2022/07/22/15-50/688ead68-ee2d-1004-8c84-f7a444399106.jpg", | |
"fileName": "250px-Georg_Caspar_Prenner_03.jpg" | |
}, | |
{ | |
"path": "https://ms36.dev.geo4.pro/rest/news/147/photos/2", | |
"fileName": "photo_2022-07-19_15-26-47 (2).jpg", | |
"isUrl": true | |
} | |
], | |
"files": [ | блок с файлами |
{ | |
"path": "c:\\Users\\san13\\OneDrive\\Pictures\\IMG_2404.MOV", | |
"fileName": "IMG_2404.MOV", | |
"isUrl": false | |
} | |
] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}Список объектов
GET /layers/:layerId/features
Структура запроса:
GET /layers/212/features?token=b3f0a9d48165be1c95bd028d3f04094g&pageNumber=1&limit=50&orderBy=nazvanie&asc=false&cql_filter=(strToLowerCase(nazvanie) like '%гагарина%')Параметры:
layerId— id слояpageNumber— страница для пагинации данныхlimit— ограничение на количество данных в ответеorderBy— поле, по которому нужно сортировать данные. По умолчанию по первичному ключуasc— если true, то сортировка в порядке возрастания, если false - то наоборот.По умолчанию asc=truecql_filter— фильтр для данных в формате CQLids— id объектов через запятую, по которым необходимо получить информациюnotIds— id объектов через запятую, которые необходимо исключить из выборкиrequestAttributes— список атрибутов слоя через запятую, которые необходимо получить в ответе. Для поля с первичным ключом можно иcпользовать алиас fidtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"features": [ | список объектов |
{ | |
"fid": 25, | |
"nazvanie": "гагарина", | |
"kategoriya": "105", | |
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}", | |
}, ... | |
], | |
"layerId": 212, | id слоя |
"geomFieldName": "the_geom" | название поля с геометрией |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Количество объектов
GET /layers/:layerId/features/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
237Описание:
- количество объектов в слое
Объект слоя
GET /layers/{layerId}/features/{featureId}
Структура запроса:
GET /layers/212/features/34?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояfeatureId— id объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"feature": { | информация по объекту |
"fid": 25, | |
"nazvanie": "гагарина", | |
"uchastok": null, | |
"data_paspo": null, | |
"kategoriya": "105", | |
"protyazhen": null, | |
"podryadchi": null, | |
"rajon": null, | |
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}", | |
"sys_geom_center": "{\"type\":\"Point\",\"coordinates\":[37.617635,55.755814]}" | точка, являющаяся центром геометрии объекта (системное поле) |
}, | |
"layerId": 212, | id слоя |
"geomFieldName": "the_geom" | название поля с геометрией |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Список объектов в точке
POST /layers/feature
Структура запроса:
POST /layers/feature?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"layersId": [198,245,345], | массив id слоев, где будет осуществляться поиск |
"size": { | размер области видимости в пикселях, объект |
"x": 1920, | пикселей по оси x, целое число |
"y": 778 | пикселей по оси y, целое число |
}, | |
"extent": { | область видимости карты, объект |
"southWest": { | координаты нижней левой точки на карте в градусах, объект |
"lat": 55.488191455802244, | широта нижней левой точки, вещественное число |
"lon": 47.94158935546874 | долгота нижней левой точки, вещественное число |
}, | |
"northEast": { | координаты верхней правой точки на карте в градусах, объект |
"lat": 56.08889483995169, | широта верхней правой точки, вещественное число |
"lon": 50.57830810546875 | долгота верхней правой точки, вещественное число |
} | |
}, | |
"point": { | точка центра области видимости в пикселях, объект |
"x": 859, | координата х, целое число |
"y": 364 | координата y, целое число |
}, | |
"filters": { | CQL-фильтры для слоев, не обязательно поле (id слоя и соответствующий ему фильтр) |
198: "(strToLowerCase(srnaimenovanie) like '%савиновский%')" | |
} | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"data": { | объект найденных данных |
"kziokzn:vamin_kioski_p_vw": { | английское название слоя, где найдены объекты |
"features": [{ | массив объектов |
"fid": "141", | первичный ключ объекта, строка |
"zayavit": "ОАО Вамин Татарстан", | |
"syyinfo":"Есть", | |
"srnaimenovanie":"Ново-савиновский", | |
"geom":"", | |
"nomerdoma":"47", | |
"sunaimenovanie":"10летОктября[П, Ст.Победилово]", | |
"syinfo":"Есть", | |
"svinfo":"Существующий" | |
} | |
], | |
"layerId":198, | id слоя |
"geomFieldName":null | поле геометрии либо null |
} | |
} | |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Список объектов в области
POST /layers/feature/bbox
Структура запроса:
POST /layers/feature/bbox?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"layersId": [198,234,23], | массив id слоев, где будет осуществляться поиск |
"srs": "EPSG:4326", | проекция запроса, строка |
"extent": { | область поиска, объект |
"southWest": { | координаты нижней левой точки области, объект |
"lon": 49.04296875, | широта нижней левой точки, вещественное число |
"lat": 55.754940702479146 | долгота нижней левой точки, вещественное число |
}, | |
"northEast": { | координаты верхней правой точки области, объект |
"lon": 49.299774169921875, | широта верхней правой точки, вещественное число |
"lat": 55.90457539720638 | долгота верхней правой точки, вещественное число |
} | |
}, | |
"polygonFilter": { | поиск по произвольному полигону (вместо extent) |
"filterType": "INTERSECTS", | тип поиска по геометрии из доступных в CQL |
"coordinates": [[37.49908447265626,55.73638916286441], | координаты полигона |
[37.53204345703126,55.780820813358645],...] | |
}, | |
"filters": { | CQL-фильтры для слоев, не обязательно поле (id слоя и соответствующий ему фильтр) |
198: "(strToLowerCase(srnaimenovanie) like '%савиновский%')" | |
} | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"data": { | объект найденных данных |
"kziokzn:vamin_kioski_p_vw": { | английское название слоя, где найдены объекты, строка |
"features": [ | массив объектов |
{ | |
"fid": "141", | первичный ключ объекта, строка |
"zayavit": "ОАО Вамин Татарстан", | |
"syyinfo":"Есть", | |
"srnaimenovanie":"Ново-савиновский", | |
"geom":" ", | |
"nomerdoma":"47", | |
"sunaimenovanie":"10летОктября[П, Ст.Победилово]", | |
"syinfo":"Есть", | |
"svinfo":"Существующий" | |
} | |
], | |
"layerId":198, | id слоя, целое число |
"geomFieldName":null | поле геометрии, строка |
} | |
} | |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной ко всем объектам слоя
GET /layers/eis/{layerId}
Структура запроса:
GET /layers/eis/198?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"layerObjectId": 1, | id объекта слоя |
"files": [ | массив найденных прикрепленных файлов |
{ | |
"objectId": "1", | id файла |
"url": "/layers/eis/7392/1/photo/1", | путь к файлу |
"fileName": "Chrysanthemum.jpg", | название файла |
"type": { | тип файла |
"id": 3, | id типа, |
"name": "photo" | название типа, может быть photo, video, audio, file, page |
}, | |
"asUrl": false, | представлен ли файл как ссылка |
"width": null, | ширина окна, для страниц (type=page) |
"height": null | высота окна, для страниц (type=page) |
} | |
] | |
} | |
] |
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной к объекту слоя
GET /layers/eis/{layerId}/{objectId}
Структура запроса:
GET /layers/eis/198/141?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояobjectId— значение первичного ключа объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"files": [ | массив найденных прикрепленных файлов |
{ | |
"url": "/layers/eis/198/141/photo/247", | путь к файлу |
"fileName": "Чистопольская,47.JPG", | название файла |
"type": { | тип файла |
"id": 3, | id типа, |
"name": "photo" | название типа, может быть photo, video, audio, file,page |
}, | |
"asUrl": false, | представлен ли файл как ссылка, булевое поле |
"width": null, | ширина окна, для страниц (type=page) |
"height": null | высота окна, для страниц (type=page) |
}, | |
{ | |
"url": "/layers/eis/198/141/file/247", | адрес, строка |
"fileName": "Чистопольская,47.JPG", | название файла, строка |
"type": { | тип, объект |
"id": 4, | id типа, целое число |
"name": "file" | название, строка |
}, | |
"asUrl": false, | представлен ли файл как ссылка, булевое поле |
"width": null, | ширина, целое число |
"height": null | высота, целое число |
} | |
] | |
} |
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Получение медиа файла, прикрепленного к объекту слоя
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}
Структура запроса:
GET /layers/eis/198/141/photo/247?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояobjectId— первичный ключ объектаphotoId— первичный ключ фотографииtoken— ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}
Структура запроса:
GET /layers/eis/198/141/photo/247/100?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояobjectId— первичный ключ объектаphotoId— первичный ключ фотографииheight— высота для масштабированияtoken— ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте и ширине
GET /layers/eis/{layerId}/{objectId}/photo/{photoId}/{height}/{width}
Структура запроса:
GET /layers/eis/198/141/photo/247/100/150?token=b3f0a9d48165be1c95bd028d3f04094g&crop=trueПараметры:
layerId— id слояobjectId— первичный ключ объектаphotoId— первичный ключ фотографииheight— высота для масштабированияwidth— ширина для масштабированияtoken— ключ доступаcrop— обрезать фотографию по размерам (необязательный)
Ответ
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Отображение прикрепленного файла
GET /layers/eis/{layerId}/{objectId}/{fileType}/{fileId}
Структура запроса:
GET /layers/eis/198/141/file/247?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
layerId— id слояobjectId— первичный ключ объектаfileType— тип файла: photo, video, audio, filefileId— первичный ключ файлаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: зависит от типа отдаваемого файла
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Метрические характеристики произвольной геометрии
POST /layers/feature/bbox
Структура запроса:
POST /geometry/gisinfo?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"geometry": { | геометрия в формате GeoJson |
"type": "MultiPolygon", | |
"coordinates":[[[[47.29080887999999,54.6742674],...]]] | |
}, | |
"srs": "EPSG:4326" | проекция, обязательно указывать только если отличается от 4326 |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"numGeometries": 1, | Количество элементов в мультигеометрии |
"nRings": 1, | Количество внешних колец мультиполигона |
"numInteriorRings": 0, | Количество внутренних колец (дырок) мультиполигона |
"nPoints": 6, | Количество точек |
"centroid": { | Центроид (GeoJson, проекция 4326) |
"type": "Point", | |
"coordinates": [ | |
47.409725817, | |
54.532109119 | |
] | |
}, | |
"pointOnSurface": { | Центроид гарантированно внутри полигона (GeoJson, проекция 4326) |
"type": "Point", | |
"coordinates": [ | |
47.409727515, | |
54.532284 | |
] | |
}, | |
"area": 511564.77793467045, | Площадь (для полигонов), метры квадратные |
"perimeter": 3179.567788512778, | Периметр (для полигонов), метры |
"length": 0, | Длина (для линий), метры |
"geomType": "MULTIPOLYGON" | Тип геометрии |
} |
Статус: 403 - нет доступа
Формат: text/plain
Содержит описание ошибки
Слои, таблицы с данными, справочники
Список
GET /datatables
Структура запроса:
GET /datatables?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 26, | id слоя |
"systemCode": "LAYER", | системный код LAYER, DATATABLE, DICTIONARY |
"view": true, | отображать ли в интерфейсе |
"useForSearch": true, | доступен ли полнотекстовый поиск |
"schemeName": "data", | схема в БД |
"nameDb": "materials", | название таблицы в БД |
"pkField": "gid", | поле первичного ключа |
"eisTable": false, | доступно ли прикрепление файлов/фотографий |
"meHistoryTurned": false, | включена ли история по объектам |
"objectsViewRestrictFieldId": 68, | id поля, по которому ограничивается область видимости объектов |
"titleFields": { | формат отображения заголовка |
"format": "{0}", | формат |
"fields": [ | используемые поля |
"name" | |
] | |
}, | |
"subTitleFields": null, | формат отображения подзаголовка (по аналогии с заголовком) |
"owner": 6, | создатель |
"attributes": [ | атрибуты |
{ | |
"id": 211, | id атрибута |
"type": "reference", | тип атрибута |
"title": "Справочник", | название атрибута |
"nameDb": "spravochnik", | название атрибута в БД |
"rules": { | правила видимости/редактирования |
"visible": { | видимость |
"byDefault": true, | по умолчанию |
"invertedForRoles": [ 4, 5] | роли исключения |
}, | |
"upsert": { | редактирование |
"byDefault": true, | по умолчанию |
"invertedForRoles": [ ] | роли исключения |
} | |
}, | |
"view": true, | видимость для текущего пользователя |
"forUpsert": true, | редактирование для текущего пользователя |
"htmlEscape": true, | экранировать ли html-символы |
"popupView": false, | отображать ли во всплывающем окне |
"forSearch": true, | использовать ли в поиске |
"refInfo": { | информация о связи с другой таблицей (тип reference) |
"tableType": "DICTIONARY", | тип таблицы (DICTIONARY, DATATABLE, LAYER) |
"table": 148, | id связанной таблицы |
"field": 385, | id поля-ключа |
"fieldName": 384 | id поля-значения |
} | |
}, ... | |
], | |
"system": false, | системный ли |
"access": { | права доступа |
"read": true, | права на чтение |
"edit": true, | права на редактирование структуры |
"importObjects": true, | возможность на импорт объектов |
"serviceObjects": false, | используется ли в заданиях |
"export": true, | возможность экспортировать |
"writeCreate": false, | возможность создавать объекты |
"writeUpdate": false, | возможность редактировать объекты |
"writeDelete": false | возможность удалять объекты |
}, | |
"title": "Материалы и услуги", | заголовок |
"clusterId": null, | id кластера |
"dataStoreId": 3, | id хранилища данных |
"layerInfo": { | информация о слое (для кода LAYER) |
"info": { | информация для отображения на карте |
"geomField": "geom", | |
"pkField": "news_id", | |
"service": "WMS", | |
"requestUrl": "/service/wms", | |
"tileSize": 256, | |
"typeName": "system_custom_views:organization_layer_new_issues", | |
"poly": false, | |
"style": "cku_departments_news_incident_style" | |
}, | |
"isStyleEditable": false, | доступно ли редактирование стиля |
"layerType": "vector", | тип слоя (vector, raster) |
"isEditable": false, | доступно ли редактирование структуры слоя |
"geometryType": "point", | тип геометрии (point, line, polygon) |
"isRaster": false, | является ли растровым слоем |
"outputTransparentColor": null, | цвет для прозрачности на выходе (для растров) |
"inputTransparentColor": null | цвет для прозрачности на входе (для растров) |
}, | |
"groupInfo": { | информация о группе |
"groupId": 12, | |
"order": 2 | |
} | |
}] |
Количество
GET /datatables/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
237Описание:
- количество таблиц
Создание
POST /datatables
Структура запроса:
POST /datatables?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"systemCode": "LAYER", | системный код LAYER, DATATABLE, DICTIONARY |
"nameDb": "new_layer", | название таблицы в БД |
"title": "Новый слой", | заголовок |
"groupId": 1, | id группы (не обязательное поле) |
"dataStoreId": 3, | id хранилища данных (не обязательное поле) |
"clusterId": 1, | id кластера (не обязательное поле) |
"attributes": [ | атрибуты |
{ | |
"nameDb": "name", | название в БД |
"title": "Название", | заголовок |
"type": "reference", | тип |
"forSearch": true, | участвует ли в поиске |
"htmlEscape": true, | экранировать ли html |
"popupView": true, | показывать ли в попапе |
"rules": { | правила видимости и редактирования (по умолчанию все true, массив ролей исключения для каждого правила) |
"visible": { | видимость |
"byDefault": true, | по умолчанию |
"invertedForRoles": [ 4, 5] | роли исключения для видимости |
}, | |
"upsert": { | редактирование |
"byDefault": true, | по умолчанию |
"invertedForRoles": [ ] | роли исключения для редактирования |
} | |
}, | |
"refTable": 2, | id таблицы-связки для типа "reference" |
"refField": 1, | id атрибута-ключа |
"refFieldName": 3 | id атрибута-значения |
},... | |
], | |
"titleFields": { | формат заголовка |
"format": "{0}", | |
"fields": ["name"] | |
}, | |
"subTitleFields": { | формат подзаголовка |
"format": "{0}", | |
"fields": ["count"] | |
}, | |
"serviceObjects": { | настройка маппинга для заданий |
"turned": true, | |
"title_format": "{0}", | |
"title_fields": ["name"], | |
"field_mappings": [ | |
{ | |
"type": "Title", | |
"field_id": null, | |
"format": "{0}", | |
"fields": [ | |
"name" | |
] | |
} | |
] | |
}, | |
"defaultAccess":[{ | настройка прав по умолчанию |
"roleId": 5, | |
"allRoles": false, | |
"organizationId": null, | |
"allOrganizations": true, | |
"publicOrganizations": null, | |
"read": true, | |
"edit": false, | |
"serviceObjects": true, | |
"writeCreate": false, | |
"writeUpdate": false, | |
"writeDelete": false, | |
"export": true | |
}], | |
"eisTable": true, | можно ли прикреплять файлы и фотографии |
"useForSearch": true, | использовать ли для полнотекстового поиска |
"turnOnHistory": true, | включена ли история по объектам |
"objectsViewRestrictFieldId": 68, | id поля, по которому ограничивается область видимости объектов |
"pkFieldType": "int", | тип поля первичного ключа (int, long) |
"customFields": null, | кастомные поля |
"layerInfo": { | настройка для слоя (системный код LAYER) |
"service": "WFS", | |
"geometryType": "point", | |
"isEditable": true, | |
"isStyleEditable": true, | |
"styles": { | |
"isBase": true | |
}, | |
"projection": "EPSG:4326" | |
} | |
} |
Примечание:
Системные коды: LAYER, DATATABLE, DICTIONARY
В зависимости от выбранного типа геометрии в "styles" могут передаваться следующие параметры:
isBase— базовый стиль (логическое)isSimple— простой стиль (логическое)style— расширенный стиль (строка - описывается geocss)
Параметр service можно не передавать. Для полигонов и линий по умолчанию WMS, для точек WFS.
Параметр datastoreId может передавать только главный администратор.
Параметр clusterId может передавать только главный администратор, если создает слой для конкретного кластера. Параметр может быть null.
Параметр projection можно не передавать. По умолчанию - EPSG:4326.
Доступные типы атрибутов:
string— строкаint— целое числоlong— большое целое числоboolean— логический типnum— вещественное числоdate— датаdateTime— дата и времяreference— связь с таблицей (refTable - id таблицы из списка, refField - id поля-ключа, refFieldName - id поля названия)systemcluster— связь с кластеромsystemcluster[]— связь с кластером с множественным выборомsystemorg— связь с организациейsystemorg[]— связь с организацией с множественным выборомsystemuser— связь с пользователемsystemuser[]— связь с пользователем с множественным выборомsystemrole[]— связь с ролью с множественным выборомsystemtasktype— связь с видом работ заданийsystemtasktype[]— связь с видом работ заданий с множественным выборомsystemtaskpriority— связь с приоритетом заданийsystemtaskpriority[]— связь с приоритетом заданий с множественным выборомrfid- RFID-метка
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 26,
"systemCode": "LAYER",
"view": true,
"useForSearch": true,
"schemeName": "data",
"nameDb": "materials",
"pkField": "gid",
"eisTable": false,
"meHistoryTurned": false,
"objectsViewRestrictFieldId": 68,
"titleFields": {
"format": "{0}",
"fields": [
"name"
]
},
"subTitleFields": null,
"owner": 6,
"attributes": [
{
"id": 211,
"type": "reference",
"title": "Справочник",
"nameDb": "spravochnik",
"rules": {
"visible": {
"byDefault": true,
"invertedForRoles": [ 4, 5]
},
"upsert": {
"byDefault": true,
"invertedForRoles": [ ]
}
},
"view": true,
"forUpsert": true,
"htmlEscape": true,
"popupView": false,
"forSearch": true,
"refInfo": {
"tableType": "DICTIONARY",
"table": 148,
"field": 385,
"fieldName": 384
}
}, ...
],
"system": false,
"access": {
"read": true,
"edit": true,
"importObjects": true,
"serviceObjects": false,
"export": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false
},
"title": "Материалы и услуги",
"clusterId": null,
"dataStoreId": 3,
"layerInfo": {
"info": {
"geomField": "geom",
"pkField": "news_id",
"service": "WMS",
"requestUrl": "/service/wms",
"tileSize": 256,
"typeName": "system_custom_views:organization_layer_new_issues",
"poly": false,
"style": "cku_departments_news_incident_style"
},
"isStyleEditable": false,
"layerType": "vector",
"isEditable": false,
"geometryType": "point",
"isRaster": false,
"outputTransparentColor": null,
"inputTransparentColor": null
},
"groupInfo": {
"groupId": 12,
"order": 2
}
}Изменение
PATCH /datatables/{tableId}
Структура запроса:
PATCH /datatables/5?token=b3f0a9d48165be1c95bd028d3f04094g&apiVersion=2.0Параметры:
tableId— id изменяемого слояtoken— ключ доступа
Пример запроса:
Формат: json
{
"title": "Новый слой",
"groupId": 1,
"clusterId": 1,
"attributes": [
{
"nameDb": "name",
"title": "Название",
"forSearch": true,
"htmlEscape": true,
"popupView": true,
"rules": {
"visible": {
"byDefault": true,
"invertedForRoles": [ 4, 5]
},
"upsert": {
"byDefault": true,
"invertedForRoles": [ ]
}
},
"refTable": 2,
"refField": 1,
"refFieldName": 3
},...
],
"titleFields": {
"format": "{0}",
"fields": ["name"]
},
"subTitleFields": {
"format": "{0}",
"fields": ["count"]
},
"serviceObjects": {
"turned": true,
"title_format": "{0}",
"title_fields": ["name"],
"field_mappings": [
{
"type": "Title",
"field_id": null,
"format": "{0}",
"fields": [
"name"
]
}
]
},
"defaultAccess":[{
"roleId": 5,
"allRoles": false,
"organizationId": null,
"allOrganizations": true,
"publicOrganizations": null,
"read": true,
"edit": false,
"serviceObjects": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false,
"export": true
}],
"eisTable": true,
"useForSearch": true,
"turnOnHistory": true,
"objectsViewRestrictFieldId": 68,
"pkFieldType": "int",
"customFields": null,
"layerInfo": {
"service": "WFS",
"geometryType": "point",
"isEditable": true,
"isStyleEditable": true,
"styles": {
"isBase": true
},
"projection": "EPSG:4326"
}
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 26,
"systemCode": "LAYER",
"view": true,
"useForSearch": true,
"schemeName": "data",
"nameDb": "materials",
"pkField": "gid",
"eisTable": false,
"meHistoryTurned": false,
"objectsViewRestrictFieldId": 68,
"titleFields": {
"format": "{0}",
"fields": [
"name"
]
},
"subTitleFields": null,
"owner": 6,
"attributes": [
{
"id": 211,
"type": "reference",
"title": "Справочник",
"nameDb": "spravochnik",
"rules": {
"visible": {
"byDefault": true,
"invertedForRoles": [ 4, 5]
},
"upsert": {
"byDefault": true,
"invertedForRoles": [ ]
}
},
"view": true,
"forUpsert": true,
"htmlEscape": true,
"popupView": false,
"forSearch": true,
"refInfo": {
"tableType": "DICTIONARY",
"table": 148,
"field": 385,
"fieldName": 384
}
}, ...
],
"system": false,
"access": {
"read": true,
"edit": true,
"importObjects": true,
"serviceObjects": false,
"export": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false
},
"title": "Материалы и услуги",
"clusterId": null,
"dataStoreId": 3,
"layerInfo": {
"info": {
"geomField": "geom",
"pkField": "news_id",
"service": "WMS",
"requestUrl": "/service/wms",
"tileSize": 256,
"typeName": "system_custom_views:organization_layer_new_issues",
"poly": false,
"style": "cku_departments_news_incident_style"
},
"isStyleEditable": false,
"layerType": "vector",
"isEditable": false,
"geometryType": "point",
"isRaster": false,
"outputTransparentColor": null,
"inputTransparentColor": null
},
"groupInfo": {
"groupId": 12,
"order": 2
}
}Удаление
DELETE /datatables/{tableId}
Структура запроса:
DELETE /datatables/14?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id удаляемой таблицыtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}Список таблиц, используемый в качестве объектов обслуживания
GET /datatables/serviceobjects
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{
"id": 5,
"systemCode": "LAYER",
"view": true,
"useForSearch": true,
"pkField": "gid",
"eisTable": true,
"owner": 6,
"system": false,
"title": "Сервисные объекты",
"clusterId": null,
"layerInfo": {
"info": {
"geomField": "the_geom",
"pkField": "gid",
"service": "WMS",
"requestUrl": "/service/wms",
"tileSize": 256,
"typeName": "workspace:service_objects_vw",
"poly": false,
"style": "point"
}
}
}]Информация по таблице
GET /datatables/{tableId}
Структура запроса:
GET /datatables/5?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id слояtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"id": 26,
"systemCode": "LAYER",
"view": true,
"useForSearch": true,
"schemeName": "data",
"nameDb": "materials",
"pkField": "gid",
"eisTable": false,
"meHistoryTurned": false,
"objectsViewRestrictFieldId": 68,
"titleFields": {
"format": "{0}",
"fields": [
"name"
]
},
"subTitleFields": null,
"owner": 6,
"attributes": [
{
"id": 211,
"type": "reference",
"title": "Справочник",
"nameDb": "spravochnik",
"rules": {
"visible": {
"byDefault": true,
"invertedForRoles": [ 4, 5]
},
"upsert": {
"byDefault": true,
"invertedForRoles": [ ]
}
},
"view": true,
"forUpsert": true,
"htmlEscape": true,
"popupView": false,
"forSearch": true,
"refInfo": {
"tableType": "DICTIONARY",
"table": 148,
"field": 385,
"fieldName": 384
}
}, ...
],
"system": false,
"access": {
"read": true,
"edit": true,
"importObjects": true,
"serviceObjects": false,
"export": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false
},
"title": "Материалы и услуги",
"clusterId": null,
"dataStoreId": 3,
"layerInfo": {
"info": {
"geomField": "geom",
"pkField": "news_id",
"service": "WMS",
"requestUrl": "/service/wms",
"tileSize": 256,
"typeName": "system_custom_views:organization_layer_new_issues",
"poly": false,
"style": "cku_departments_news_incident_style"
},
"isStyleEditable": false,
"layerType": "vector",
"isEditable": false,
"geometryType": "point",
"isRaster": false,
"outputTransparentColor": null,
"inputTransparentColor": null,
"clusterStyle": null
},
"groupInfo": {
"groupId": 12,
"order": 2
}
}Объекты таблицы
Создание объекта
POST /datatables/{tableId}/features
Структура запроса:
POST /datatables/145/features?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id слояtoken— ключ доступа
Пример запроса:
Формат: json
{ | |
"attributes": [ | список атрибутов |
{ | |
"nameDb": "naimenovan", | название атрибута, строка |
"type": "string", | тип атрибута, строка |
"value": "Мытищи" | значение, строка |
}, | |
{ | |
"nameDb": "int", | |
"type": "int", | |
"value": "1" | |
}, | |
{ | |
"nameDb": "float", | |
"type": "double", | |
"value": "2.2" | |
}, | |
{ | |
"nameDb": "datetime", | |
"type": "dateTime", | |
"value": 1623158460000 | |
}, | |
{ | |
"nameDb": "date", | |
"type": "date", | |
"value": "06.08.2021" | |
}, | |
{ | |
"nameDb": "date_timestamp", | |
"type": "date", | |
"value": 1626739200000 | |
}, | |
{ | |
"nameDb": "logicheskoe", | |
"type": "boolean", | |
"value": true | |
} | |
], | |
"geometry": { | объект геометрии |
"type": "MultiPoint", | |
"coordinates": [[64.3359375,60.58696734225869]] | |
}, | |
"files": [{ | список файлов |
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc", | uuid загруженного файла, строка |
"name": "gloreg.doc" | |
}], | |
"pages": [{ | веб-страницы |
"url": "http://www.url.com", | адрес, строка |
"description": "Веб-страница", | описание, строка |
"size": { | размер |
"width": 640, | ширина, целое число |
"height": 360 | высота, целое число |
} | |
}], | |
"photos": [{ | список фотографий |
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg", | uuid загруженной фотографии, строка |
"name": "Lighthouse.jpg" | |
}] | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}Изменение объекта
PATCH /datatables/{tableId}/features/{featureId}
Структура запроса:
PATCH /datatables/154/features/3?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыfeatureId— id объектаtoken— ключ доступа
Пример запроса:
Формат: json
{ | |
"attributes": [ | список атрибутов |
{ | |
"nameDb": "naimenovan", | название атрибута, строка |
"type": "string", | тип атрибута, строка |
"value": "Мытищи1" | значение, строка |
}, | |
{ | |
"nameDb": "int", | |
"type": "int", | |
"value": "1" | |
}, | |
{ | |
"nameDb": "float", | |
"type": "double", | |
"value": "2.2" | |
}, | |
{ | |
"nameDb": "datetime", | |
"type": "dateTime", | |
"value": 1623158460000 | |
}, | |
{ | |
"nameDb": "date", | |
"type": "date", | |
"value": "06.08.2021" | |
}, | |
{ | |
"nameDb": "date_timestamp", | |
"type": "date", | |
"value": 1626739200000 | |
}, | |
{ | |
"nameDb": "logicheskoe", | |
"type": "boolean", | |
"value": true | |
} | |
], | |
"geometry": { | объект геометрии |
"type": "MultiPoint", | |
"coordinates": [[64.3359375,60.58696734225869]] | |
}, | |
"removeGeometry": false, | нужно ли удалить геометрию объекта |
"files": [{ | список новых файлов |
"uuid": "b3tbt4tuj46n4yummmm1n8jg7.doc", | uuid загруженного файла, строка |
"name": "gloreg.doc" | |
}], | |
"removeFiles": [5,6], | массив id удаляемых файлов |
"pages": [{ | новые веб-страницы |
"url": "http://www.url.com", | адрес, строка |
"description": "Веб-страница1", | описание, строка |
"size": { | размер |
"width": 640, | ширина, целое число |
"height": 360 | высота, целое число |
} | |
}], | |
"removePages": [1], | массив id удаляемых веб-страниц |
"photos": [{ | список новых фотографий |
"uuid": "4345hyhukujh4ju5uyyjk7u5jgg124a5.jpg", | uuid загруженной фотографии, строка |
"name": "Lighthouse.jpg" | |
}], | |
"removePhotos": [4] | массив id удаляемых фотографий |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"update": true
}Удаление объекта
DELETE /datatables/{tableId}/features/{featureId}
Структура запроса:
DELETE /datatables/154/features/3?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id удаляемой таблицыfeatureId— id объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete":true
}Добавление медиа файлов к объекту
PATCH /datatables/{tableId}/features/{featureId}/files
Структура запроса:
PATCH /datatables/145/features/345/files?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыfeatureId— id объектаtoken— ключ доступа
Пример запроса:
Формат: json
{
"photos": [
{
"isUrl": true,
"path": "/department_files/photos/2022_07_22_15-50_688ead68-ee2d-1004-8c84-f7a444399106.jpg",
"fileName": "2022_07_22_15-50_688ead68-ee2d-1004-8c84-f7a444399106.jpg"
},
{
"isUrl": false,
"path": "/var/www/mapadmin/htdocs/department_files/photos/2022/07/22/15-50/688ead68-ee2d-1004-8c84-f7a444399106.jpg",
"fileName": "250px-Georg_Caspar_Prenner_03.jpg"
},
{
"path": "https://ms36.dev.geo4.pro/rest/news/147/photos/2",
"fileName": "photo_2022-07-19_15-26-47 (2).jpg",
"isUrl": true
}
],
"files": [
{
"path": "c:\\Users\\san13\\OneDrive\\Pictures\\IMG_2404.MOV",
"fileName": "IMG_2404.MOV",
"isUrl": false
}
]
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"insert": true
}Список объектов
GET /datatables/:tableId/features
Структура запроса:
GET /datatables/212/features?token=b3f0a9d48165be1c95bd028d3f04094g&pageNumber=1&limit=50&orderBy=nazvanie&asc=false
&cql_filter=(strToLowerCase(nazvanie) like '%гагарина%')&sysTitle=trueПараметры:
tableId— id таблицыpageNumber— страница для пагинации данныхlimit— ограничение на количество данных в ответеorderBy— поле, по которому нужно сортировать данные. По умолчанию по первичному ключуasc— если true, то сортировка в порядке возрастания, если false - то наоборот.По умолчанию asc=truecql_filter— фильтр для данных в формате CQLids— id объектов через запятую, по которым необходимо получить информациюnotIds— id объектов через запятую, которые необходимо исключить из выборкиrequestAttributes— список атрибутов слоя через запятую, которые необходимо получить в ответе. Для поля с первичным ключом можно иcпользовать алиас fidsysTitle— добавлять ли заголовок и подзаголовок объектов в системные поля sys_title и sys_subtitletoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"features": [ | список объектов |
{ | |
"gid": 25, | |
"nazvanie": "гагарина", | |
"kategoriya": "105", | |
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}" | |
}, ... | |
], | |
"tableId": 212, | id слоя |
"geomFieldName": "the_geom", | название поля с геометрией |
"pkField": "gid" | название поля с первичным ключом |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Количество объектов
GET /datatables/:tableId/features/count
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
237Описание:
- количество объектов в слое
Объект таблицы
GET /datatables/{tableId}/features/{featureId}
Структура запроса:
GET /datatables/212/features/34?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыfeatureId— id объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"feature": { | информация по объекту |
"fid": 25, | |
"nazvanie": "гагарина", | |
"uchastok": null, | |
"data_paspo": null, | |
"kategoriya": "105", | |
"protyazhen": null, | |
"podryadchi": null, | |
"rajon": null, | |
"the_geom": "{\"type\":\"MultiLineString\",\"coordinates\":[[[49.28466796875,55.7951054522369],[49.4590759277344,55.7788900549897],[49.3890380859375,55.8437111579294]]]}", | |
"sys_geom_center": "{\"type\":\"Point\", \"coordinates\":[37.617635,55.755814]}" | точка, являющаяся центром геометрии объекта (системное поле) |
}, | |
"geomFieldName": "the_geom", | название поля с геометрией |
"pkField": "gid", | название поля с первичным ключом |
"tableId": 5 | id слоя |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Список объектов в области
POST /datatables/feature/bbox
Структура запроса:
POST /datatables/feature/bbox?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"layersId": [198,234,23], | массив id таблиц, где будет осуществляться поиск |
"srs": "EPSG:4326", | проекция запроса, строка |
"extent": { | область поиска, объект |
"southWest": { | координаты нижней левой точки области, объект |
"lon": 49.04296875, | широта нижней левой точки, вещественное число |
"lat": 55.754940702479146 | долгота нижней левой точки, вещественное число |
}, | |
"northEast": { | координаты верхней правой точки области, объект |
"lon": 49.299774169921875, | широта верхней правой точки, вещественное число |
"lat": 55.90457539720638 | долгота верхней правой точки, вещественное число |
} | |
}, | |
"polygonFilter": { | поиск по произвольному полигону (вместо extent) |
"filterType": "INTERSECTS", | тип поиска по геометрии из доступных в CQL |
"coordinates": [[37.49908447265626,55.73638916286441],[37.53204345703126,55.780820813358645],...] | координаты полигона |
}, | |
"filters": { | CQL-фильтры для слоев, не обязательно поле (id слоя и соответствующий ему фильтр) |
198: "(strToLowerCase(srnaimenovanie) like '%савиновский%')" | |
} | |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"data": { | объект найденных данных |
"kziokzn:vamin_kioski_p_vw": { | английское название таблицы, где найдены объекты, строка |
"features": [ | массив объектов |
{ | |
"gid": "141", | первичный ключ объекта, строка |
"zayavit": "ОАО Вамин Татарстан", | |
"syyinfo":"Есть", | |
"srnaimenovanie":"Ново-савиновский", | |
"geom" :" ", | |
"nomerdoma":"47", | |
"sunaimenovanie":"10летОктября[П, Ст.Победилово]", | |
"syinfo":"Есть", | |
"svinfo":"Существующий" | |
} | |
], | |
"tableId":198, | id слоя, целое число |
"geomFieldName": "geom", | поле геометрии, строка |
"pkField": "gid" | название поля с первичным ключом, строка |
} | |
} | |
} |
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной ко всем объектам слоя
GET /datatables/eis/{tableId}
Структура запроса:
GET /datatables/eis/198?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"featureId": 1, | id объекта таблицы |
"files": [ | массив объектов с медиафайлами |
{ | |
"objectId": "1", | id объекта таблицы |
"url": "/datatables/eis/7392/1/photo/1", | путь к файлу |
"fileName": "Chrysanthemum.jpg", | название файла |
"type": { | тип файла |
"id": 3, | id типа, |
"name": "photo" | название типа, может быть photo, video, audio, file, page |
}, | |
"asUrl": false, | представлен ли файл как ссылка |
"width": null, | ширина окна, для страниц (type=page) |
"height": null | высота окна, для страниц (type=page) |
} | |
] | |
} | |
] |
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Получение медиа информации, прикрепленной к объекту слоя
GET /datatables/eis/{tableId}/{objectId}
Структура запроса:
GET /datatables/eis/198/141?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыobjectId— значение первичного ключа объектаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"files": [ | массив найденных прикрепленных файлов |
{ | |
"url": "/datatables/eis/198/141/photo/247", | путь к файлу |
"fileName": "Чистопольская,47.JPG", | название файла |
"type": { | тип файла |
"id": 3, | id типа, |
"name": "photo" | название типа, может быть photo, video, audio, file,page |
}, | |
"asUrl": false, | представлен ли файл как ссылка, булевое поле |
"width": null, | ширина окна, для страниц (type=page) |
"height": null | высота окна, для страниц (type=page) |
}, | |
{ | |
"url": "/datatables/eis/198/141/file/247", | адрес, строка |
"fileName": "Чистопольская,47.JPG", | название файла, строка |
"type": { | тип, объект |
"id": 4, | id типа, целое число |
"name": "file" | название, строка |
}, | |
"asUrl": false, | представлен ли файл как ссылка, булевое поле |
"width": null, | ширина, целое число |
"height": null | высота, целое число |
} | |
] | |
} |
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Получение медиа файла, прикрепленного к объекту слоя
GET /datatables/eis/{tableId}/{objectId}/photo/{photoId}
Структура запроса:
GET /datatables/eis/198/141/photo/247?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыobjectId— первичный ключ объектаphotoId— первичный ключ фотографииtoken— ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте
GET /datatables/eis/{tableId}/{objectId}/photo/{photoId}/{height}
Структура запроса:
GET /datatables/eis/198/141/photo/247/100?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id слояobjectId— первичный ключ объектаphotoId— первичный ключ фотографииheight— высота для масштабированияtoken— ключ доступа
Отображение прикрепленной фотографии с масштабированием по высоте и ширине
GET /datatables/eis/{tableId}/{objectId}/photo/{photoId}/{height}/{width}
Структура запроса:
GET /datatables/eis/198/141/photo/247/100/150?token=b3f0a9d48165be1c95bd028d3f04094g&crop=trueПараметры:
tableId— id слояobjectId— первичный ключ объектаphotoId— первичный ключ фотографииheight— высота для масштабированияwidth— ширина для масштабированияtoken— ключ доступаcrop— обрезать фотографию по размерам (необязательный)
Ответ
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Отображение прикрепленного файла
GET /datatables/eis/{tableId}/{objectId}/{fileType}/{fileId}
Структура запроса:
GET /datatables/eis/198/141/file/247?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыobjectId— первичный ключ объектаfileType— тип файла: photo, video, audio, filefileId— первичный ключ файлаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: зависит от типа отдаваемого файла
Статус: 404 - слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Импорт из текста
POST /datatables/:tableId/features/import
Структура запроса:
POST /datatables/3/features/import?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtoken— ключ доступа
Пример запроса:
Формат: json
{ | |
"features":"text", | текст с названиями объектов |
"attribute": null, | атрибут, куда записывать название |
"separator": null | разделить |
} |
Примечание:
По умолчанию каждая новая строка в тексте - это новый объект
Атрибут передавать не обязательно. По умолчанию значение вставляет в атрибут, который является заголовком
Разделитель также не обязательное поле. По умолчанию это перенос строки
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"taskId":"eatjteyj56ujtym4yumuymtjm" | id задачи на импорт в системе |
} |
Статус: 400 - ошибка валидации
Формат: json
{
"exception": ["ошибка"]
}Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Проверка статуса процесса импорта
GET /datatables/:tableId/features/import/{taskId}
Структура запроса:
GET /datatables/5/features/import/eatjteyj56ujtym4yumuymtjm?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtaskId— id задачи на импорт в системе (из предыдущего запроса)token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"status":"FINISH",
"exception": ["ошибка"],
"features": {
"count": 2414,
"saved": 234
},
"startTime": "timestamp в миллисекундах",
"finishTime": "timestamp в миллисекундах",
"items": [
{
"fid": 3242,
"title": "Название объекта"
}
]
}Поля:
status— статус выполнения задачиitems— это поле присутствует только в статусе FINISH, FINISH_WITH_ERRORS
Статусы:
NOTFOUND— процесс не найден (статус ответа также будет 404)ERROR— произошла ошибкаPROGRESS— в процессеFINISH— закончен без ошибокFINISH_WITH_ERRORS— закончен, но с ошибками
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Массовое создание объектов
POST /datatables/:tableId/features/list
Структура запроса:
POST /datatables/3/features/list?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtoken— ключ доступа
Пример запроса:
Формат: json
{
"items": [
{
"attributes": [
{
"nameDb": "naimenovan",
"type": "string",
"value": "Мытищи"
},
{
"nameDb": "int",
"type": "int",
"value": "1"
},
{
"nameDb": "float",
"type": "double",
"value": "2.2"
},
{
"nameDb": "datetime",
"type": "dateTime",
"value": 1623158460000
},
{
"nameDb": "date",
"type": "date",
"value": "06.08.2021"
},
{
"nameDb": "date_timestamp",
"type": "date",
"value": 1626739200000
},
{
"nameDb": "logicheskoe",
"type": "boolean",
"value": true
}
],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,60.58696734225869]]
},
"files": [{
"uuid": "p19bmted386it1m9g1qf91h1n8jg7.doc",
"name": "gloreg.doc"
}],
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница",
"size": {
"width": 640,
"height": 360
}
}],
"photos": [{
"uuid": "p19bmtd4911ef215h0fal1ugg124a5.jpg",
"name": "Lighthouse.jpg"
}]
}, ...
]
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"taskId":"eatjteyj56ujtym4yumuymtjm" | id задачи |
} |
Статус: 400 - ошибка валидации
Формат: json
{
"exception": ["ошибка"]
}Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Массовое обновление объектов
PATCH /datatables/:tableId/features/list
Структура запроса:
PATCH /datatables/3/features/list?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtoken— ключ доступа
Пример запроса:
Формат: json
{
"items": [
{
"id": 2342,
"attributes": [
{
"nameDb": "naimenovan",
"type": "string",
"value": "Мытищи1"
},
{
"nameDb": "int",
"type": "int",
"value": "1"
},
{
"nameDb": "float",
"type": "double",
"value": "2.2"
},
{
"nameDb": "datetime",
"type": "dateTime",
"value": 1623158460000
},
{
"nameDb": "date",
"type": "date",
"value": "06.08.2021"
},
{
"nameDb": "date_timestamp",
"type": "date",
"value": 1626739200000
},
{
"nameDb": "logicheskoe",
"type": "boolean",
"value": true
}
],
"geometry": {
"type": "MultiPoint",
"coordinates": [[64.3359375,60.58696734225869]]
},
"removeGeometry": false,
"files": [{
"uuid": "b3tbt4tuj46n4yummmm1n8jg7.doc",
"name": "gloreg.doc"
}],
"removeFiles": [5,6],
"pages": [{
"url": "http://www.url.com",
"description": "Веб-страница1",
"size": {
"width": 640,
"height": 360
}
}],
"removePages": [1],
"photos": [{
"uuid": "4345hyhukujh4ju5uyyjk7u5jgg124a5.jpg",
"name": "Lighthouse.jpg"
}],
"removePhotos": [4]
}, ...
]
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"taskId":"eatjteyj56ujtym4yumuymtjm" | id задачи на импорт в системе |
} |
Статус: 400 - ошибка валидации
Формат: json
{
"exception": ["ошибка"]
}Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Проверка статуса процесса массового создания/обновления
GET /datatables/:tableId/features/list/{taskId}
Структура запроса:
GET /datatables/5/features/list/eatjteyj56ujtym4yumuymtjm?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
tableId— id таблицыtaskId— id задачиtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"status":"FINISH",
"exception": ["ошибка"],
"features": {
"count": 2414,
"saved": 234
},
"startTime": "timestamp в миллисекундах",
"finishTime": "timestamp в миллисекундах",
"items": [
{
"fid": 3242,
"title": "Название объекта"
}
]
}Поля:
status— статус выполнения задачиitems— это поле присутствует только в статусе FINISH, FINISH_WITH_ERRORS
Статусы:
NOTFOUND— процесс не найден (статус ответа также будет 404)ERROR— произошла ошибкаPROGRESS— в процессеFINISH— закончен без ошибокFINISH_WITH_ERRORS— закончен, но с ошибками
Статус: 403 - нет доступа к слоям
Формат: text/plain
Содержит описание ошибки
Права доступа к таблицам
Список прав доступа
Ограничение: Доступно только для пользователей с правами администратора
GET /datatables/accesses
Структура запроса:
GET /datatables/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"userId": 60, | id пользователя, целое число |
"layerId": 41, | id слоя, целое число |
"groupId": 3, | id группы, целое число |
"organizationId": 1, | id организации, целое число |
"layerOrder": 9, | порядковый номер слоя, целое число |
"groupOrder": 6, | порядковый номер группы, целое число |
"read": true, | доступен к просмотру, логическое |
"writeCreate": true, | доступен к созданию объектов, логическое |
"writeUpdate": true, | доступен к редактированию объектов, логическое |
"writeDelete": true, | доступен к удалению объектов, логическое |
"edit": true, | доступен к управлению, логическое |
"serviceObjects": true, | использование в задании, логическое |
"export": true, | возможность экспорта, логическое |
"layerName": "Название слоя", | название слоя, строка |
"groupName": "Название группы", | название группы, строка |
"userLogin": "login", | пользовательский логин, строка |
"userName": "ФИО пользователя", | имя пользователя, строка |
"layerClusterId": 2, | id кластера слоя, целое число |
"userClusterIds": [2,3], | id кластеров пользователя, массив целых чисел |
"systemCode": "DATATABLE" | системный код таблицы, строка |
},...] |
Количество прав доступа
Ограничение: Доступно только для пользователей с правами администратора
GET /datatables/accesses/count
Структура запроса:
GET /datatables/accesses/count?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: text/plain
342Описание:
- количество прав доступа
Создание/обновление права доступа
Ограничение: Доступно только для пользователей с правами администратора
POST /datatables/accesses
Структура запроса:
POST /datatables/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{ | |
"layerId": 36, | id таблицы, целое число |
"userId": 60, | id пользователя, целое число |
"read": true, | право на просмотр, логическое |
"writeCreate": false, | право на создание объектов, логическое |
"writeUpdate": false, | право на редактирование объектов, логическое |
"writeDelete": false, | право на удаление объектов, логическое |
"edit": false, | право на управление, логическое |
"serviceObjects": true, | использование объектов в задании, логическое |
"export": false | возможность экспорта, логическое |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"read": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false,
"edit": false,
"serviceObjects": true,
"export": false,
"userName": "Пользователь",
"groupId": 4,
"userId": 110,
"layerName": "Слой"
}Массовое обновление права доступа
Ограничение: Доступно только для пользователей с правами администратора
PUT /datatables/accesses
Структура запроса:
PUT /datatables/accesses?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: json
{
"accessList": [
{
"layerId": 36,
"userId": 60,
"read": true,
"writeCreate": false,
"writeUpdate": false,
"writeDelete": false,
"edit": false,
"serviceObjects": true,
"export": false
}
]
}Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"errors": null
}Иконки
Список иконок
Ограничение: Доступно только для пользователей с правами администратора
GET /dictionary/icons
Структура запроса:
GET /dictionary/icons?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 99, | id иконки, целое число |
"name": "red", | название иконки, строка |
"width": 73, | ширина, целое число |
"ownerOrganizationId":null, | id организации, пользователь которой добавил иконку (если null - пользователь не из организации) |
"height": 72 | высота, целое число |
},...] |
Список редактируемых иконок
Ограничение: Доступно только для пользователей с правами администратора
GET /dictionary/icons/editable
Структура запроса:
GET /dictionary/icons/editable?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[{ | |
"id": 99, | id иконки, целое число |
"name": "red", | название иконки, строка |
"width": 73, | ширина, целое число |
"ownerOrganizationId": null, | id организации, пользователь которой добавил иконку (если null - пользователь не из организации) |
"height": 72 | высота, целое число |
},...] |
Создание иконки
Ограничение: Доступно только для пользователей с правами администратора
POST /dictionary/icons
Структура запроса:
POST /dictionary/icons?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"name": "Человек", | название иконки, строка |
"uuid": "p1996qif28t071sb22us1hd93lon.png" | uuid иконки, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 51, | id иконки, целое число |
"name": "Справочник", | название иконки, строка |
"width": 1258, | ширина, целое число |
"height": 750 | высота, целое число |
} |
Изменение иконки
Ограничение: Доступно только для пользователей с правами администратора
PUT /dictionary/icons/{id}
Структура запроса:
PUT /dictionary/icons/51?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id иконкиtoken— ключ доступа
Пример запроса:
{ | |
"id": 51, | id иконки, целое число |
"name": "Новое название иконки", | название справочника, строка |
"uuid": "p1996qif28t071sb22us1hd93lon.png" | uuid иконки, строка |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"id": 51, | id иконки, целое число |
"name": "Новое название иконки", | название иконки, строка |
"width": 1258, | ширина, целое число |
"height": 750 | высота, целое число |
} |
Удаление иконки
Ограничение: Доступно только для пользователей с правами администратора
DELETE /dictionary/icons/{id}
Структура запроса:
DELETE /dictionary/icons/51?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id иконкиtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
{
"delete": true
}Просмотр изображения иконки
GET /dictionary/icons/{id}/view
Структура запроса:
GET /dictionary/icons/23/view?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
id— id иконкиtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: image/jpeg и т.д.
Изображение
Геокодирование
Поиск по адресу (POST запрос)
POST /geocoding
Структура запроса:
POST /geocoding?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"layersId": ["10","12","26"], | массив id слоев, где также надо осуществлять поиск |
"query": "Казань", | строка запроса |
"bbox": { | область запроса |
"southWest": { | левая нижняя точка |
"lon": 46, | долгота точки, вещественное число |
"lat": 55 | широта точки, вещественное число |
}, | |
"northEast": { | правая верхняя точка |
"lon": 48, | долгота точки, вещественное число |
"lat": 57 | широта точки, вещественное число |
} | |
}, | |
"onlylayers": true | есть true, то осуществлять поиск только по слоям |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"layer": "Улицы", | русское название, строка |
"wmsName": "world:k2_ulitsy_l", | английское название, строка |
"layerId": null, | null - слой, для поиска по умолчанию, иначе id из массива |
"items": [{ | массив найденных объектов |
"pkid": 162815, | первичный ключ, строка |
"label": "Казань, городской округ Казань, Татарстан", | заголовок, строка |
"zoom": 16, | зум для отображения, целое число |
"point": { | точка, объект |
"lon": 49.28956419647526, | долгота точки, вещественное число |
"lat": 55.75372719479096 | широта точки, вещественное число |
}, | |
"address": { | расшифровка адреса, объект |
"city": "Казань", | |
"county": "городской округ Казань", | |
"state": "Татарстан", | |
"country": "Россия", | |
"country_code": "ru" | |
}, | |
"sys_clr_id": null, | системное поле id cluster, если присутствует в атрибутах слоя |
"sys_org_id": null | системное поле id организации, если присутствует в атрибутах слоя |
}] | |
}, ... | |
] |
Поиск по адресу (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?query=Казань&layersId=12,23,345,56&bbox=46,55,48,57&onlylayers=true&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
query— строка запросаlayersId— id слоев, где также надо осуществлять поиск, через запятуюbbox— область запросаonlylayers— есть true, то осуществлять поиск только по слоямtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"layer": "Улицы", | русское название, строка |
"wmsName": "world:k2_ulitsy_l", | английское название, строка |
"layerId": null, | null - слой, для поиска по умолчанию, иначе id из массива |
"items": [{ | массив найденных объектов |
"pkid": 162815, | первичный ключ, строка |
"label": "Казань, городской округ Казань, Татарстан", | заголовок, строка |
"zoom": 16, | зум для отображения, целое число |
"point": { | точка, объект |
"lon": 49.28956419647526, | долгота точки, число с плавающей точкой |
"lat": 55.75372719479096 | широта точки, число с плавающей точкой |
}, | |
"address": { | расшифровка адреса, объект |
"city": "Казань", | |
"county": "городской округ Казань", | |
"state": "Татарстан", | |
"country": "Россия", | |
"country_code": "ru" | |
}, | |
"sys_clr_id": null, | системное поле id cluster, если присутствует в атрибутах слоя |
"sys_org_id": null | системное поле id организации, если присутствует в атрибутах слоя |
}] | |
}, ... | |
] |
Поиск по координатам (POST запрос)
POST /geocoding
Структура запроса:
POST /geocoding?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
{ | |
"layersId": ["10","12","26"], | массив id слоев, где также надо осуществлять поиск |
"point": { | точка на карты, объект |
"lon": 50.69091796875, | долгота точки, вещественное число |
"lat": 55.33851784425634 | широта точки, вещественное число |
}, | |
"zoom": 14, | уровень масштабирования карты, влияет на уровень детализации, необходимый для адреса. |
"onlylayers": true | есть true, то осуществлять поиск только по слоям |
} |
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"layer": "Улицы", | русское название, строка |
"wmsName": "world:k2_ulitsy_l", | английское название, строка |
"layerId": null, | null - слой, для поиска по умолчанию, иначе id из массива |
"items": [{ | массив найденных объектов |
"pkid": 162815, | первичный ключ, строка |
"label": "Казань, городской округ Казань, Татарстан", | заголовок, строка |
"zoom": 16, | зум для отображения, целое число |
"point": { | точка, объект |
"lon": 49.28956419647526, | долгота точки, вещественное число |
"lat": 55.75372719479096 | широта точки, вещественное число |
}, | |
"address": { | расшифровка адреса, объект |
"city": "Казань", | |
"county": "городской округ Казань", | |
"state": "Татарстан", | |
"country": "Россия", | |
"country_code": "ru" | |
}, | |
"sys_clr_id": 2, | системное поле id cluster, если присутствует в атрибутах слоя |
"sys_org_id": null | системное поле id организации, если присутствует в атрибутах слоя |
}] | |
}, ... | |
] |
Поиск по координатам (GET запрос)
GET /geocoding
Структура запроса:
GET /geocoding?lon=55.45&lat=49.67&layersId=12,23,345,56&zoom=14&onlylayers=true&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
lon— долгота точки, вещественное числоlat— широта точки, вещественное числоlayersId— id слоев, где также надо осуществлять поиск, через запятуюzoom— уровень масштабирования карты, влияет на уровень детализации, необходимый для адресаonlylayers— есть true, то осуществлять поиск только по слоямtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Формат: json
[ | |
{ | |
"layer": "Улицы", | русское название, строка |
"wmsName": "world:k2_ulitsy_l", | английское название, строка |
"layerId": null, | null - слой, для поиска по умолчанию, иначе id из массива |
"items": [{ | массив найденных объектов |
"pkid": 162815, | первичный ключ, строка |
"label": "Казань, городской округ Казань, Татарстан", | заголовок, строка |
"zoom": 16, | зум для отображения, целое число |
"point": { | точка, объект |
"lon": 49.28956419647526, | долгота точки, число с плавающей точкой |
"lat": 55.75372719479096 | широта точки, число с плавающей точкой |
}, | |
"address": { | расшифровка адреса, объект |
"city": "Казань", | |
"county": "городской округ Казань", | |
"state": "Татарстан", | |
"country": "Россия", | |
"country_code": "ru" | |
}, | |
"sys_clr_id": null, | системное поле id cluster, если присутствует в атрибутах слоя |
"sys_org_id": 4 | системное поле id организации, если присутствует в атрибутах слоя |
}] | |
}, ... | |
] |
Загрузка
Загрузка файлов
POST /upload/cache
Структура запроса:
POST /upload/cache?photo=true&token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
photo— необязательный параметр, если загружается фотографияtoken— ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....Описание:
- тело файла
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"status": "ok", | статус ответа |
"data": ["p18hps8iga1pi81aot89i18d81of87"] | uuid загруженного файла |
} |
Получение загруженного файла
GET /upload/cache/{uuid}
Структура запроса:
GET /upload/cache/p18hps8iga1pi81aot89i18d81of87?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
uuid— uuid загруженного файлаtoken— ключ доступа
Ответ
Статус: 200 - успешное выполнение
Загруженный файл
Получение загруженной фотографии
GET /upload/cache/{uuid}/{width}/{height}.{extension}
Структура запроса:
GET /upload/cache/p18hps8iga1pi81aot89i18d81of87/500/800.jpg?token=b3f0a9d48165be1c95bd028d3f04094g&stretch=trueПараметры:
uuid— uuid загруженного файлаwidth— ширина фотографииheight— высота фотографииextension— разрешение фотографииtoken— ключ доступаstretch— растянуть фотографию по размерам (необязательный)crop— обрезать фотографию по размерам (необязательный)
Ответ
Статус: 200 - успешное выполнение
Загруженный файл
Загрузка больших файлов
POST /upload/disc
Структура запроса:
POST /upload/disc?token=b3f0a9d48165be1c95bd028d3f04094gПараметры:
token— ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....Описание:
- тело файла
Ответ
Статус: 200 - успешное выполнение
Формат: json
{ | |
"status": "ok", | статус ответа |
"data": ["p18hps8iga1pi81aot89i18d81of87.zip"] | uuid загруженного файла |
} |
Общие коды ответов
Статус: 401 - пользователь неавторизован
Формат: text/plain
Содержит описание ошибки
Статус: 403 - доступ к операции запрещен
Формат: text/plain
Содержит описание ошибки
Статус: 404 - объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 400 - неправильный запрос
Формат: text/plain
Содержит описание ошибки
Статус: 400 - ошибка валидации
Формат: application/json
Содержит ошибки валидации
Статус: 500 - внутренняя ошибка
Формат: text/plain
Содержит описание ошибки
