Automap — rest — Documentation
Документация
Документация пользователя
GET /docs/user
Структура запроса:
GET /docs/user?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 200 — успешное выполнение
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Документация администратора
GET /docs/administration
Структура запроса:
GET /docs/administration?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 200 — успешное выполнение
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — CustomFields
Дополнительные поля
Список дополнительных полей
GET /cars/customfields
Структура запроса:
GET /cars/customfields?token=gtr543lpas87
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 324,
"name": "дробное",
"translit": "drobnoe",
"format": "float",
"groupName": "",
"possibleValues": null,
"regexp": null,
"minLength": 0,
"maxLength": 0,
"isRequired": false,
"defaultValue": "123.640",
"visible": false,
"order": null
},…]
Примечание:
В зависимости от передаваемого формата данных пользователю становятся доступны определенные поля для добавления и редактирования информации о выбранном дополнительном поле:
- Строка (string) — валидация поля (regexp), минимальная длина строки (minLength), максимальная длина строки (maxLength), значение по умолчанию (defaultValue), обязательное поле (isRequired), отображение поля (visible).
- Целое число (int) — значение по умолчанию (defaultValue), обязательное поле (isRequired), отображение поля (visible).
- Дробное число (float) — значение по умолчанию (defaultValue), обязательное поле (isRequired), отображение поля (visible).
- Дата (date) — обязательное поле (isRequired), отображение поля (visible).
- Условие (bool) — значение по умолчанию (defaultValue), обязательное поле (isRequired), отображение поля (visible).
- Список (list) — возможные значения списка (possibleValues), значение по умолчанию (defaultValue), обязательное поле (isRequired), отображение поля (visible).
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление дополнительного поля
POST /cars/customfields
Структура запроса:
POST /cars/customfields?token=gtr543lpas87
token: ключ доступа
Пример запроса:
Формат: json
{
"defaultValue": 10,
"format": "int",
"isRequired": true,
"name": "Новое поле",
"visible": true
}
// значение по умолчанию, строка
// формат данных, строка
// является ли поле обязательным, булевое поле
// название дополнительного поля, строка
// отображается ли поле, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 822,
"name": "Новое поле",
"translit": "Novoe_pole",
"format": "string",
"groupName": "",
"possibleValues": null,
"regexp": "Регулярное выражение",
"minLength": 0,
"maxLength": 225,
"isRequired": true,
"defaultValue": null,
"visible": true,
"order": null
}
// id дополнительного поля, целое число
// название дополнительного поля, строка
// транслит названия, строка
// формат данных, строка
// название группы, строка
// возможные значения, строка
// валидация поля, строка
// минимальная длина строки, целое число
// максимальная длина строки, целое число
// является ли поле обязательным, булевое поле
// значение по умолчанию, строка
// отображается ли поле, булевое поле
// порядковый номер, целое число
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование дополнительного поля
PUT /cars/customfields/{id}
Структура запроса:
PUT /cars/customfields/82?token=gtr543lpas87
id: id дополнительного поля
token: ключ доступа
Пример запроса:
Формат: json
{
"id": 82,
"name": "Дополнительное поле",
"translit": "Dopolnitelnoe_pole",
"format": "list",
"groupName": "",
"possibleValues": ["значение 1"],
"regexp": null,
"minLength": 0,
"maxLength": 0,
"isRequired": true,
"defaultValue": "значение 1",
"visible": true,
"order": null
}
// id дополнительного поля, целое число
// название дополнительного поля, строка
// транслит названия, строка
// формат данных, строка
// название группы, строка
// возможные значения, строка
// валидация поля, строка
// минимальная длина строки, целое число
// максимальная длина строки, целое число
// является ли поле обязательным, булевое поле
// значение по умолчанию, строка
// отображается ли поле, булевое поле
// порядковый номер, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 82,
"name": "Дополнительное поле",
"translit": "Dopolnitelnoe_pole",
"format": "list",
"groupName": "",
"possibleValues": ["значение 1"],
"regexp": null,
"minLength": 0,
"maxLength": 0,
"isRequired": true,
"defaultValue": "значение 1",
"visible": true,
"order": null
}
// id дополнительного поля, целое число
// название дополнительного поля, строка
// транслит названия, строка
// формат данных, строка
// название группы, строка
// возможные значения, строка
// валидация поля, строка
// минимальная длина строки, целое число
// максимальная длина строки, целое число
// является ли поле обязательным, булевое поле
// значение по умолчанию, строка
// отображается ли поле, булевое поле
// порядковый номер, целое число
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление дополнительного поля
DELETE /cars/customfields/{id}
Структура запроса:
DELETE /cars/customfields/82?token=gtr543lpas87
id: id дополнительного поля
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — Notification
Оповещения
Список оповещений
GET /notifies
Структура запроса:
GET /notifies?token=gtr543lpas87
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 1,
"name": "Название",
"timeFrom": 0,
"timeTill": 86340000,
"message": "",
"expired": null,
"eventId": 18,
"carIds": [1887,2067,3152,3154],
"userIds": [1908]
},…]
// id оповещения, целое число
// название оповещения, строка
// время начала оповещения, целое число
// время окончания оповещения, целое число
// текст сообщения, строка
// время, когда рассылка оповещений завершается, целое число
// id события, целое число
// id ТС, целое число
// id пользователя, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация об оповещении по id
GET /notifies/{id}
Структура запроса:
GET /notifies/1?token=gtr543lpas87
id: id оповещения
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 1,
"name": "Название",
"timeFrom": 0,
"timeTill": 86340000,
"message": "",
"expired": null,
"eventId": 18,
"carIds": [1887,2067,3152,3154],
"userIds": [1908]
}
// id оповещения, целое число
// название оповещения, строка
// время начала оповещения, целое число
// время окончания оповещения, целое число
// текст сообщения, строка
// время, когда рассылка оповещений завершается, целое число
// id события, целое число
// id ТС, целое число
// id пользователя, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление оповещения
POST /notifies
Структура запроса:
POST /notifies?token=gtr543lpas87
token: ключ доступа
Пример запроса:
{
"carIds": [1232],
"eventId": 6,
"expired": 1422434434000,
"message": "ТС car.carInfo.carNo : event.info в date_from",
"name": "Новое оповещение",
"timeFrom": 36000000,
"timeTill": 86340000,
"userIds": [262, 3]
}
// id ТС, массив
// id события, целое число
// дата истечения отправки оповещений, timestamp
// текст сообщения, строка
// название оповещения, строка
// начало оповещения, timestamp
// конец оповещения, timestamp
// id пользователей, массив
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 381,
"name": "Новое оповещение",
"timeFrom": 36000000,
"timeTill": 86340000,
"message": "ТС car.carInfo.carNo : event.info в date_from",
"expired": 1422434434000,
"eventId": 6,
"carIds": [123211],
"userIds": [262, 3]
}
// id оповещения, целое число
// название оповещения, строка
// время начала оповещения, целое число
// время окончания оповещения, целое число
// текст сообщения, строка
// время, когда рассылка оповещений завершается, целое число
// id события, целое число
// id ТС, целое число
// id пользователя, целое число
Примечание:
При создании или редактировании оповещений в поле «message» появляются шаблонные варианты уведомлений, которые будут приходить определенным пользователям в виде электронных писем или SMS (в зависимости от настроек сервера). Текст этого шаблона зависит от типа выбранного события.
Кроме того, пользователю с правами администрирования доступно редактирование готовых шаблонов. Для этого он может воспользоваться следующими атрибутами:
- car.carInfo.carNo — государственный номер транспортного средства;
- date_from — дата начала события;
- date_to — дата окончания события;
- event.info — информация о событии;
- car.carInfo.model — модель транспортного средства;
- car.carInfo.mark — марка транспортного средства;
- notify.time_from — время начала оповещения;
- notify.time_till — время окончания оповещения;
- event.data_from — дата начала события;
- event.data_till — дата окончания события.
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование оповещения
PUT /notifies/{id}
Структура запроса:
PUT /notifies/28?token=gtr543lpas87
id: id оповещения
token: ключ доступа
Формат: json
{
"carIds": [123211],
"eventId": "9",
"expired": 1422434434000,
"id": 28,
"message": "На ТС car.carInfo.carNo : event.info в date_from",
"name": "Новое название",
"timeFrom": 43200000,
"timeTill": 86340000,
"userIds": [262]
}
// id ТС, массив
// id события, целое число
// дата истечения отправки оповещений, timestamp
// id оповещения, целое число
// текст сообщения, строка
// название оповещения, строка
// начало оповещения, timestamp
// конец оповещения, timestamp
// id пользователей, массив
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 28,
"name": "Новое название",
"timeFrom": 43200000,
"timeTill": 86340000,
"message": "На ТС car.carInfo.carNo : event.info в date_from",
"expired": 1422434434000,
"eventId": 9,
"carIds": [123211],
"userIds": [262]
}
// id оповещения, целое число
// название оповещения, строка
// время начала оповещения, целое число
// время окончания оповещения, целое число
// текст сообщения, строка
// время, когда рассылка оповещений завершается, целое число
// id события, целое число
// id ТС, целое число
// id пользователя, целое число
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление оповещения
DELETE /notifies/{id}
Структура запроса:
DELETE /notifies/33?token=gtr543lpas87
id: id оповещения
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
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
Содержит описание ошибки