MapSurfer — rest — main
Главная страница
Базовые слои
GET /baseLayers
Структура запроса:
GET /baseLayers
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"schemas": [{
"name": "Карта России",
"className": "newClass()",
"order": 0,
"code": 307516729
},...],
"spaces": [{
"name": "Космоснимки Роскосмос",
"className": "new Class2()",
"order": 0,
"code": 500344996
},...]
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Карта
GET /mapExtent
Структура запроса:
GET /mapExtent
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"mapExtent": {
"id": 6,
"name": "Наименование",
"extent": {
"minX": 47.867088965011725,
"minY": 54.233424150623314,
"maxX": 54.99757390915839,
"maxY": 56.72299186350165,
"projection": "EPSG:4326"
}
}
}
// текущее положение карты, объект
// id, целое число
// название, строка
// расположение, объект
// минимальное значение X, число с плавающей точкой
// минимальное значение Y, число с плавающей точкой
// максимальное значение X, число с плавающей точкой
// максимальное значение Y, число с плавающей точкой
// проекция
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущая версия
GET /version
Структура запроса:
GET /version
Ответ:
Статус: 200 — успешное выполнение
Формат: json
3.5-SNAPSHOT
// текущая версия приложения
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущие настройки
GET /locale
Структура запроса:
GET /locale
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"language": "ru",
"country": "Russia",
"code": "ru"
}
// язык, строка
// страна, строка
// код, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — auth
Авторизация
Авторизация на сервере
POST /auth/token
Структура запроса:
POST /auth/token
Пример запроса:
Формат: json
{
"login": "testlogin",
"password": "12345"
}
// логин пользователя, строка
// пароль, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"token": "hwk12poi3f1",
"refreshToken": "mbs90lon2a8",
"ttl": 3600
}
// ключ доступа, строка
// ключ для обновления ключа доступа, строка
// время жизни ключа доступа в секундах, целое число
Статус: 401 — логин или пароль переданы неверно
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Обновление ключа доступа
GET /auth/token/refresh
Структура запроса:
GET /auth/token/refresh?refreshToken=mbs90lon2a8
refreshToken: ключ для обновления ключа доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"token": "hwk12poi3f1",
"refreshToken": "mbs90lon2a8",
"ttl": 3600
}
// новый ключ доступа, строка
// новый ключ для обновления ключа доступа, строка
// время жизни ключа доступа в секундах, целое число
Статус: 400 — не передан параметр refreshToken
Формат: text/plain
Содержит описание ошибки
Статус: 404 — параметр refreshToken не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Авторизован ли пользователь
GET /auth
Структура запроса:
GET /auth?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"authenticated": "true",
"user": {
"id": 1,
"login": "admin",
"name": "Администратор ведомств",
"info": {
"id": 1,
"address": "Страна, город, улица",
"phone": "+79655905559",
"fax": "5173443",
"email": "email@email.com",
"inn": 253565322124,
"kpp": null,
"passport": "",
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"organizationId": null,
"roleId": 8,
"role": {
"id": 8,
"title": "Администратор ведомств"
}
}
}
// true, если пользователь авторизован, иначе false, булевое поле
// данные о пользователе, если он авторизован, объект
// id пользователя, целое число
// логин пользователя
// имя пользователя, строка
// данные о пользователе, объект
// id пользователя, целое число
// адрес пользователя, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские данные, строка
// банк КПП, целое число
// банк БИК, целое число
// банковский счет, строка
// id организации, целое число
// id группы прав, целое число
// информация о группе прав, объект
// id группы прав, целое число
// название группы прав, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Текущий пользователь
GET /users/current
Структура запроса:
GET /users/current?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"user": {
"id": 61,
"login": "admin",
"name": "Администратор ведомств",
"info": {
"id": 61,
"address": "Страна, город, улица",
"phone": "",
"fax": "",
"email": "",
"inn": null,
"kpp": null,
"passport": "",
"bank": "",
"bankKpp": null,
"bankBik": null,
"bankSchet": ""
},
"organizationId": null,
"roleId": 8,
"role": {
"id": 8,
"title": "Администратор ведомств"
}
}
}
// данные о текущем пользователе, объект
// id пользователя, целое число
// логин пользователя, строка
// ФИО пользователя, строка
// дополнительная информация о пользователе
// id пользователя, целое число
// адрес пользователя, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские реквизиты, строка
// банк КПП, строка
// банк БИК, строка
// банковский счет, строка
// id организации, целое число
// id группы прав, целое число
// информация о группе прав, объект
// id группы прав, целое число
// название, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход
GET /logout
Структура запроса:
GET /logout?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": "ok"
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — users
Пользователи
Список пользователей
Доступно только для пользователей с правами администратора
GET /users
Структура запроса:
GET /users?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 1,
"login": "login",
"name": "ФИО пользователя",
"info": {
"id": 1,
"address": "Страна, город, улица",
"phone": "+79173633639",
"fax": "",
"email": "user@user.com",
"inn": 6547822145,
"kpp": 0,
"passport": "",
"bank": "",
"bankKpp": 55547852,
"bankBik": 04466851752,
"bankSchet": ""
},
"organizationId": 9,
"roleId": 2
},...]
// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// информация о пользователе, объект
// id пользователя, целое число
// адрес, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские реквизиты, строка
// банк КПП, целое число
// банк БИК, целое число
// банковский счет, целое число
// id организации, целое число
// id роли пользователя, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество пользователей
Доступно только для пользователей с правами администратора
GET /users/count
Структура запроса:
GET /users/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
233
}
// количество пользователей, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о пользователе
Доступно только для пользователей с правами администратора
GET /users/{id}/info
Структура запроса:
GET /users/12/info?token=mbs90lon2a8
id: id пользователя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 12,
"address": "Адрес",
"phone": "+79655904447",
"fax": "2156847",
"email": "email@email.com",
"inn": 362124752,
"kpp": 0,
"passport": "",
"bank": "",
"bankKpp": 0,
"bankBik": 0,
"bankSchet": ""
}
// id пользователя, целое число
// адрес, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские реквизиты, строка
// банк КПП, целое число
// банк БИК, целое число
// банковский счет, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Роли пользователей
Доступно только для пользователей с правами администратора
GET /users/roles
Структура запроса:
GET /users/roles?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"title": "Заказчик",
"id": 1
},
{
"title": "Администратор ведомств",
"id": 2
},...
]
// название роли, строка
// id роли, целое число
// название роли, строка
// id роли, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление пользователя
Доступно только для пользователей с правами администратора
POST /users
Структура запроса:
POST /users?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"info": {
"address": "Город, улица, дом",
"email": "email",
"fax": "",
"inn": "325365602014",
"passport": "",
"phone": "+79600802229"
},
"login": "adminvedomstv",
"name": "ФИО пользователя",
"password": "123456",
"roleId": 2
}
// информация о пользователе, объект
// адрес пользователя, строка
// электронная почта, строка
// факс, строка
// ИНН, целое число
// паспортные данные, строка
// номер телефона, строка
// логин, строка
// имя пользователя, строка
// пароль, строка
// id роли, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 172,
"login": "adminvedomstv",
"name": "ФИО пользователя",
"info": {
"id": 172,
"address": "Город, улица, дом",
"phone": "+79600802229",
"fax": "",
"email": "",
"inn": 325365602014,
"kpp": 0,
"passport": "",
"bank": "",
"bankKpp": 0,
"bankBik": 0,
"bankSchet": ""
},
"organizationId": null,
"roleId": 2
}
// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// информация о пользователе, объект
// id пользователя, целое число
// адрес, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские реквизиты, строка
// банк КПП, целое число
// банк БИК, целое число
// банковский счет, строка
// id организации, целое число
// id роли, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование пользователя
Доступно только для пользователей с правами администратора
PUT /users/{id}
Структура запроса:
PUT /users/24?token=mbs90lon2a8
id: id пользователя
token: ключ доступа
Пример запроса:
Формат: json
{
"id": 24,
"info": {
"address": "Город, улица, дом",
"email": "",
"fax": "",
"inn": 325365602014,
"passport": "",
"phone": "+79600802229"
},
"login": "adminvedomstv",
"name": "ФИО пользователя",
"password": "123456",
"roleId": 2
}
// id пользователя, целое число
// информация о пользователе, объект
// адрес пользователя, строка
// электронная почта, строка
// факс, строка
// ИНН, целое число
// паспортные данные, строка
// номер телефона, строка
// логин, строка
// имя пользователя, строка
// пароль, строка
// id роли, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 24,
"login": "adminvedomstv",
"name": "ФИО пользователя",
"info": {
"id": 24,
"address": "Новый адрес",
"phone": "+79600802229",
"fax": "",
"email": "new email",
"inn": 325365602014,
"kpp": 0,
"passport": "Новые паспортные данные",
"bank": "",
"bankKpp": 0,
"bankBik": 0,
"bankSchet": ""
},
"organizationId": null,
"roleId": 8
}
// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// информация о пользователе, объект
// id пользователя, целое число
// адрес, строка
// телефон, строка
// факс, строка
// электронная почта, строка
// ИНН, целое число
// КПП, целое число
// паспортные данные, строка
// банковские реквизиты, строка
// банк КПП, целое число
// банк БИК, целое число
// банковский счет, строка
// id организации, целое число
// id роли, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление пользователя
Доступно только для пользователей с правами администратора
DELETE /users/{id}
Структура запроса:
DELETE /users/24?token=mbs90lon2a8
id: id пользователя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete": true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт пользователей
Доступно только для пользователей с правами администратора
GET /users.xlsx
Структура запроса:
GET /users.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группы пользователей
GET /users/groups
Структура запроса:
GET /users/groups?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"groups": [{
"id": 1,
"name": "Название группы",
"order": 10
},...]
}
// информация о группах
// id группы, целое число
// название группы, строка
// порядковый номер, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — reports
Отчеты
Список отчетов
GET /jreports
Структура запроса:
GET /jreports?token=mbs90lon2a8
token: ключ доступа
editable: дополнительный параметр, возвращает список отчетов, которые являются редактируемыми
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 705,
"order": 1,
"name": "Название отчета",
"parameters": [{
"id": 764,
"description": "Дата с",
"type": "date",
"name": "in_date_from",
"prompt": true
}],
"dataStoreId": null
}]
// id отчета, целое число
// порядоковый номер в списке, целое число
// название отчета, строка
// список параметров, массив
// id параметра, целое число
// описание параметра, строка
// тип, строка
// название, строка
// id хранилища, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение отчета по id
GET /jreports/{reportId}
Структура запроса:
GET /jreports/705?token=mbs90lon2a8
reportId: id отчета
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 705,
"order": 1,
"name": "Название отчета",
"parameters": [{
"id": 764,
"description": "Дата с",
"type": "date",
"name": "in_date_from",
"prompt": true,
"sourceQuery": null,
"lib": false,
"order": 1
}],
"dataStoreId": null
}
// id отчета, целое число
// порядоковый номер в списке, целое число
// название отчета, строка
// список параметров, массив
// id параметра, целое число
// описание параметра, строка
// тип, строка
// название, строка
// порядоковый номер в списке, целое число
// id хранилища, целое число
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Загрузка отчета
POST /jreports/load
Структура запроса:
POST /jreports/load?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: xml
<?xml .....
// xml отчета, созданного через ПО
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p198coiisr1o0c1a.jrxml"]
}
// статус ответа
// uuid загруженного файла
Статус: 403 — нет доступа к загрузке отчета
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного отчета
GET /jreports/add/{uuid}
Структура запроса:
GET /jreports/add/p198coiisr1o0c1a15vmu1knv5iv3.jrxml?token=mbs90lon2a8
uuid: uuid файла отчета
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"name":"in_integer",
"type":"int"
}]
// название, строка
// тип, строка
Статус: 403 — нет доступа к загрузке отчета
Формат: text/plain
Содержит описание ошибки
Статус: 404 — отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание только что загруженного отчета
POST /jreports
Структура запроса:
POST /jreports?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"params": [{
"description": "Параметр",
"type": "text",
"name": "new_parameter"
}],
"xmlFile": "p18oa94t92ptv19f.jrxml",
"name": "Название отчета"
}
// объект параметров, массив
// описание параметра(русское название), строка
// тип, строка
// название в xml, строка
// uuid, строка
// название отчета, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"dataStoreId": 21,
"id": 1068,
"name": "Название отчета",
"order": 50,
"parameters": [{
"id": 1147,
"description": "Параметр",
"type": "text",
"name": "new_parameter",
"prompt": true
}]
}
// id хранилища, целое число
// id отчета, целое число
// название отчета, строка
// порядковый номер в списке, целое число
// информация о параметрах, массив
// id параметра, целое число
// описание, строка
// тип, строка
// название, строка
Статус: 403 — нет доступа к загрузке отчета
Формат: text/plain
Содержит описание ошибки
Статус: 404 — отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Изменение отчета
PUT /jreports/{reportId}
Структура запроса:
PUT /jreports/604?token=mbs90lon2a8
reportId: id отчета
token: ключ доступа
Пример запроса:
Формат: json
{
"name": "Название отчета",
"parameters": [{
"id": 604,
"description": "Начиная с",
"type": "date",
"name": "in_date_from",
"prompt": true
}]
}
// название отчета, строка
// массив параметров
// id параметров, целое число
// описание параметра (русское название), строка
// тип, строка
// название в xml, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": "ok",
}
// статус ответа
Статус: 403 — нет доступа к загрузке отчета
Формат: text/plain
Содержит описание ошибки
Статус: 404 — отчет не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление отчета
DELETE /jreports/{id}
Структура запроса:
DELETE /jreports/25?token=mbs90lon2a8
id: id удаляемого отчета
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"delete":true
}
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — loadfile
Загрузка слоя из файла
Загрузка файла
POST /layers/upload
Структура запроса:
POST /layers/upload?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: данные файла
<?файл .....
// тело файла
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.tif"]
}
// статус ответа
// uuid загруженного файла
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Получение параметров только что загруженного файла слоя
GET /layers/upload/{uuid}
Структура запроса:
GET /layers/upload/p18hps8iga1pi81aot89i18d81of87.tif?token=mbs90lon2a8
uuid: uuid файла слоя
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"type": "vector",
"geometryType": "multipolygon",
"attributes": [{
"name": "the_geom",
"rusName": "the_geom",
"type": "MultiPolygon",
"isGeometryField": true
}]
}
// тип слоя (vector или raster), строка
// тип геометрии, строка
// массив атрибутов
// название атрибута, строка
// русское название атрибута, строка
// тип, строка
// является ли полем с геометрией, булевое поле
Статус: 403 — нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 — файл слоя не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отправка параметров для загруженного файла слоя
POST /layers/uploaded
Структура запроса:
POST /layers/uploaded?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"attributes": [{
"name": "zagolovok",
"value": "Новый объект",
"id": 14}],
"customFields": {},
"fileName": "p19kk78q2b1n1f1o6v76jkk71bit13.tif",
"fromFile": true,
"geometryType": "point",
"groupId": 352,
"isEditable": true,
"layerType": "raster",
"name": "novcyj_sloj",
"title": "Новый слой",
"withProjection": false
}
// список атрибутов
// название атрибута, строка
// значение атрибута, строка
// id атрибута, целое число
// дополнительные поля
// название файла, строка
// загрузка из файла, булева переменная
// тип геометрии, строка
// id группы, целое число
// является редактируемым, булева переменная
// тип слоя, строка
// английское название слоя, строка
// заголовок, строка
// с проекцией, булева переменная
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 16,
"name": "Новый слой",
"info": {
"id": 16,
"typeName": "local:new",
"style": "raster",
"service": "WMS",
"poly": false,
"requestUrl": "/service/wms"
},
"isEditable": true,
"fields": [],
"groupId": 351,
"dataStoreId": null,
"order": 1,
"geometryType": "",
"layerType": "raster",
"dataStoreName": ""
}
// id слоя, целое число
// локальное название слоя, строка
// информация о слое
// id слоя, целое число
// название, строка
// стиль, строка
// сервис, строка
// является ли полигоном, булева переменная
// строка запроса, строка
// является редактируемым, булева переменная
// дополнительные поля
// id группы, целое число
// id хранилища, целое число
// порядковый номер, целое число
// тип геометрии, строка
// тип слоя, строка
// название хранилища, строка
Статус: 403 — нет доступа к загрузке слоев
Формат: text/plain
Содержит описание ошибки
Статус: 404 — файл не загружен
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — geocode
Геокодирование
POST запрос
POST /geocoding
Структура запроса:
POST /geocoding?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"layersId": ["10","12","26"],
"query": "Казань",
"point": {
"lon": 50.69091796875,
"lat": 55.33851784425634
},
"bBox": {
"_southWest": {
"lng": 46,
"lat": 55
},
"_northEast": {
"lng": 48,
"lat": 57
}
}
}
// массив id слоев, где также надо осуществлять поиск
// строка запроса
// центр карты, объект
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой
// область запроса
// левая нижняя точка
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой
// правая верхняя точка
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"layers": [{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"items": [{
"pkid": 162815,
"label": "Республика Татарстан, Казань, Ледяная",
"zoom": 16,
"point": {
"lon": 49.28956419647526,
"lat": 55.75372719479096
}
}]
}]
}
// массив слоев, где найдены объекты
// русское название, строка
// английское название, строка
// null - слой, для поиска по умолчанию, иначе id из массива
// массив найденных объектов
// первичный ключ, строка
// заголовок, строка
// зум для отображения, целое число
// точка, объект
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
GET запрос
GET /geocoding
Структура запроса:
GET /geocoding?query=Казань&lon=55.45&lat=49.67&layersId=12,23,345,56&bbox=46,55,48,57
?token=mbs90lon2a8
query: строка запроса
lon: долгота центра карты, число с плавающей точкой
lat: широта центра карты, число с плавающей точкой
layersId: id слоев, где также надо осуществлять поиск, через запятую
bbox: область запроса
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"layers": [{
"layer": "Улицы",
"wmsName": "world:k2_ulitsy_l",
"layerId": null,
"items": [{
"pkid": 162815,
"label": "Республика Татарстан, Казань, Ледяная",
"zoom": 16,
"point": {
"lon": 49.28956419647526,
"lat": 55.75372719479096
}
}]
}]
}
// массив слоев, где найдены объекты
// русское название, строка
// английское название, строка
// null - слой, для поиска по умолчанию, иначе id из массива
// массив найденных объектов
// первичный ключ, строка
// заголовок, строка
// зум для отображения, целое число
// точка, объект
// долгота точки, число с плавающей точкой
// широта точки, число с плавающей точкой
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — download
Загрузка
Загрузка файлов
POST /fileload
Структура запроса:
POST /fileload?photo=true
photo: необязательный параметр (необходим при загрузке фотографии)
Пример запроса:
Формат: json
<?файл .....
// тело файла
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": "ok",
"data": ["p18hps8iga1pi81aot89i18d81of87.jpg"]
}
// статус ответа
// uuid загруженного файла
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — langs
Языки
Доступные языки
GET /languages
Структура запроса:
GET /languages
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"code": "en",
"isCurrent": false
},
{
"code": "ru",
"isCurrent": true
}]
// язык, строка
// установлен ли сейчас, булевое поле
// язык, строка
// установлен ли сейчас, булевое поле
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Переключение языка
/?lang=en
Структура запроса:
/?lang=en
Ответ:
Статус: 200 — успешное выполнение
Ответ от основного запроса
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — service
Сервисы
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=mbs90lon2a8
service: сервис запроса WMS
request: название запроса GetMap
version: версия 1.1.1
layers: английское название слоя или слоев через запятую
styles: название стиля или стилей через запятую
format: формат, в котором вернется тайл
transparent: есть ли прозрачность
height: высота тайла
width: ширина тайла
srs: код проекции
bbox: область запроса
cql_filter: строка CQL фильтра
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра format
Содержит описание ошибки
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — ни один слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WMS — запрос легенды слоя
GET /service/wms
Структура запроса:
GET /service/wms?request=GetLegendGraphic&style=vamin_kioski_p_vw_style_21_03_2011_19_20_16&layer=kziokzn:
vamin_kioski_p_vw&format=image/png&token=mbs90lon2a8
request: название запроса GetLegendGraphic
layer: английское название слоя
style: название стиля слоя
format: формат, в котором вернется легенда
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра format
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS — получение WFS слоя
GET /service/wfs
Структура запроса:
GET /service/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=DEMO:kfu_building&outputFormat=json&
bbox=40.14404296875,52.905589081407825,61.23779296875,57.630699148918424&token=mbs90lon2a8
service: сервис запроса WFS
request: название запроса GetFeature
version: версия 1.0.0
typeName: английское название слоя
outputFormat: формат возвращаемых данных
bbox: область запроса слоя
srs: код проекции, по умолчанию EPSG:4326
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: зависит от параметра outputFormat
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
WFS — post запросы к геосерверу
POST /service/wfs/{layerId}
Структура запроса:
POST /service/wfs/114
service: сервис запроса WFS
layerId: id слоя
Пример запроса:
Формат: Xml
<wfs:Transaction service="WFS" version="1.0.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:topp="
http://www.openplans.org/topp"
xmlns:gml="
http://www.opengis.net/gml"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd
http://www.openplans.org/topp
http://localhost:8080/geoserver/wfs/DescribeFeatureType?typename=topp:tasmania_roads">
<wfs:Insert>
<topp:tasmania_roads>
<topp:the_geom>
<gml:MultiLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:lineStringMember>
<gml:LineString>
<gml:coordinates decimal="." cs="," ts=" ">
494475.71056415,5433016.8189323 494982.70115662,5435041.95096618
</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>
</topp:the_geom>
<topp:TYPE>alley</topp:TYPE>
</topp:tasmania_roads>
</wfs:Insert>
</wfs:Transaction>
// xml запроса к геосерверу, для указанного слоя
Ответ:
Статус: 200 — успешное выполнение, возвращается ответ от Geoserver
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Стиль слоя
Запрос sld-файла стиля
GET /service/styles/{layerId}/{styleName}.sld
Структура запроса:
GET /service/styles/367/set_wifi_iconstyle_02_10_2012_14_00_01.sld?token=mbs90lon2a8
layerId: id слоя
styleName: название стиля
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: text/xml
Статус: 403 — нет доступа к слою
Формат: text/plain
Содержит описание ошибки
Статус: 404 — слой не найден в системе
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
MapSurfer — rest — accesses
Права на отчеты
Список прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses
Структура запроса:
GET /jreports/accesses?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"userId": 60,
"reportId": 25,
"reportName": "Отчет",
"userLogin": "login",
"userName": "ФИО пользователя",
"read": false
},...]
// id пользователя, целое число
// id отчета, целое число
// название отчета, строка
// логин пользователя, строка
// имя пользователя, строка
// доступен просмотр, булевое поле
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses/count
Структура запроса:
GET /jreports/accesses/count?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
367
}
// количество прав на отчеты
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание права на отчеты
Доступно только для пользователей с правами администратора
POST /jreports/accesses
Структура запроса:
POST /jreports/accesses?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"read": true,
"reportId": 368,
"userId": 58
}
// право на просмотр, булевое поле
// id отчета, целое число
// id пользователя, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"read": true,
"userName": "Имя пользователя",
"userId": 58,
"reportId": 368,
"reportName": "Новый отчет"
}
// право на просмотр, булевое поле
// имя пользователя, строка
// id пользователя, целое число
// id отчета, целое число
// название отчета, строка
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Сохранение порядка
POST /jreports/ordering
Структура запроса:
POST /jreports/ordering?token=mbs90lon2a8
token: ключ доступа
Пример запроса:
Формат: json
{
"orderings": [{
"id": 748,
"order": 1
},
{
"id": 747,
"order": 2
},…]
}
// порядок групп слоев, объект
// id группы, целое число
// порядок группы, целое число
// id группы, целое число
// порядок группы, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Порядок сохранен
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт прав на отчеты
Доступно только для пользователей с правами администратора
GET /jreports/accesses.xlsx
Структура запроса:
GET /jreports/accesses.xlsx?token=mbs90lon2a8
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Возвращает бинарный файл
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки