Automap — rest — usersGroups (before delete /all)
Группы пользователей
Список групп пользователей
Доступно только для всевидящих администраторов
GET /users/groups
Структура запроса:
GET /users/groups?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 2,
"name": "adminGS",
"wheel": true,
"admin": true,
"usersCount": 15,
"organizationId": 2
},...]
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп пользователей (с ускоренной загрузкой за счет отсутствия фильтрации)
Доступно только для всевидящих администраторов
GET /users/groups/all
Структура запроса:
GET /users/groups/all?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 2,
"name": "adminGS",
"wheel": true,
"admin": true,
"usersCount": 24,
"organizationId": 2
},...]
// id группы, целое число
// название группы, строка
// всевидящие, булевое поле
// администраторы, булевое поле
// число пользователей в группе, целое число
// id организации, целое число
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество групп пользователей
Доступно только для всевидящих администраторов
GET /users/groups/count
Структура запроса:
GET /users/groups/count?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: text
23
// Количество групп пользователей
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о группе пользователей по id
Доступно только для всевидящих администраторов
GET /users/groups/{id}
Структура запроса:
GET /users/groups/35?token=bw3ty3h46yth
id: id группы пользователей
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"name": "groupName",
"wheel": true,
"admin": true,
"organizationId": 1,
"carGroups": [1,2,3],
"geoportalLogin": "login",
"geoportalPassword": "12345"
}
// название группы пользователей, строка
// всевидящие, булевое поле
// администрирование, булевое поле
// id организации, целое число
// id групп ТС, целое число
// логин на GeoPortal, строка
// пароль на GeoPortal, строка
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Группы ТС определенной группы пользователей
Доступно только для всевидящих администраторов
GET /users/groups/{id}/cars/groups
Структура запроса:
GET /users/groups/27/cars/groups?token=bw3ty3h46yth
id: id группы пользователей
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 27,
"name": "Группа 1",
"notes": "-",
"organizationId": 1
},...]
// id группы ТС, целое число
// название группы ТС, строка
// примечания, строка
// id организации, целое число
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление группы пользователей
Доступно только для всевидящих администраторов
POST /users/groups
Структура запроса:
POST /users/groups?token=bw3ty3h46yth
token: ключ доступа
Формат: json
{
"admin": false,
"carGroups": [49, 51, 47, 81, 82, 24],
"geoportalLogin": "geologin",
"geoportalPassword": "geopass",
"name": "Название",
"organizationId": "162",
"usersCount": 0,
"wheel": true
}
// администрирование, булевое поле
// id групп ТС, целое число
// логин на GeoPortal, строка
// пароль на GeoPortal, строка
// название группы пользователей, строка
// id организации, целое число
// количество пользователей, целое число
// всевидящие, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"admin": false,
"id": 22,
"name": "Название",
"organizationId": 162,
"usersCount": 0,
"wheel": false
}
// администрирование, булевое поле
// id группы пользователей, целое число
// название группы пользователей, строка
// id организации, целое число
// количество пользователей, целое число
// всевидящие, булевое поле
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование группы пользователей
Доступно только для всевидящих администраторов
PUT /users/groups/{id}
Структура запроса:
PUT /users/groups/23?token=bw3ty3h46yth
id: id группы пользователей
token: ключ доступа
Формат: json
{
"admin": false,
"carGroups": [61],
"geoportalLogin": "login",
"geoportalPassword": "password",
"id": 23,
"name": "Имя",
"organizationId": "17",
"usersCount": 0,
"wheel": false
}
// администрирование, булевое поле
// id групп ТС, массив
// логин на GeoPortal, строка
// пароль на GeoPortal, строка
// id группы пользователей, целое число
// название группы пользователей, строка
// id организации, целое число
// количество пользователей, целое число
// всевидящие, булевое поле
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"admin": false,
"id": 23,
"name": "Имя",
"organizationId": 17,
"usersCount": 0,
"wheel": false
}
// администрирование, булевое поле
// id группы пользователей, целое число
// название группы пользователей, строка
// id организации, целое число
// количество пользователей, целое число
// всевидящие, булевое поле
Статус: 400 — ошибка в запросе
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление группы пользователей
Доступно только для всевидящих администраторов
DELETE /users/groups/{id}
Структура запроса:
DELETE /users/groups/16?token=bw3ty3h46yth
id: id группы пользователей
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт групп пользователей
Доступно только для всевидящих администраторов
GET /users/groups.xlsx
Структура запроса:
GET /users/groups.xlsx?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — Объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — carGroups (before delete /wheel)
Группы ТС
Список групп ТС
GET /cars/groups
Структура запроса:
GET /cars/groups?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 703,
"name": "003",
"notes": null,
"organizationId": 1
}
]
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп ТС (без фильтрации)
Доступно только для всевидящих пользователей
GET /cars/groups/wheel
Структура запроса:
GET /cars/groups/wheel?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 703,
"name": "003",
"notes": null,
"organizationId": 1
}
]
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование группы
Доступно только для пользователей с правами администратора
PUT /cars/groups/{id}
Структура запроса:
PUT /cars/groups/4901?token=bw3ty3h46yth
id: id группы
token: ключ доступа
Формат: json
{
"id": 4901,
"name": "name",
"notes": "",
"organizationId": "1143"
}
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 5000,
"name": "name",
"notes": "",
"organizationId": "1143"
}
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление группы
Доступно только для пользователей с правами администратора
POST /cars/groups
Структура запроса:
POST /cars/groups?token=bw3ty3h46yth
token: ключ доступа
Формат: json
{
"name": "name",
"organizationId": "10"
}
// название группы, строка
// id организации, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 4901,
"name": "name",
"notes": "",
"organizationId": "1143"
}
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление группы
Доступно только для пользователей с правами администратора
DELETE /cars/groups/{groupId}
Структура запроса:
DELETE /cars/groups/92?token=bw3ty3h46yth
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт групп ТС
Доступно только для пользователей с правами администратора
GET /cars/groups.xlsx
Структура запроса:
GET/ cars/groups.xlsx?token=gtr543lpas87
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Успешное выполнение запроса
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список ТС группы
GET /cars/groups/{groupId}/cars
Структура запроса:
GET /cars/groups/702/cars?token=bw3ty3h46yth
groupId: id группы
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 4158,
"name": "testDrivers",
"glonassId": 354235,
"view": true,
"lastUpdate": null,
"onService": false,
"iconStandard": true,
"iconIndex": 223,
"toDelete": false,
"markId": 150,
"modelId": 1621,
"groupId": 702,
"speed": 0,
"direction": 0,
"lat": 0,
"lon": 0,
"carNo": "235235",
"isStopped": false,
"tagsIds": [ ],
"organizationId": 1
}
]
// массив ТС группы
// id ТС, целое число
// название, строка
// ГЛОНАСС id, целое число
// видима ли, булевое поле
// последнее обновление, timestamp
// если true - ТС на сервисном обслуживании, булевое поле
// стандартная иконка, булевое поле
// индекс иконки, целое число
// ТС в процессе удаления, булевое поле
// id марки, целое число
// id модели, целое число
// id группы, целое число
// текущая скорость, целое число
// угол, под которым вошло ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// номер ТС, строка
// остановлена, булевое поле
// id меток, массив
// id организации, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список групп машин ( с более быстрой загрузкой, т.к. без фильтрации)
GET /cars/groups/all
Структура запроса:
GET /cars/groups/all?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 703,
"name": "003",
"notes": null,
"organizationId": 1
}
]
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество доступных групп
GET /cars/groups/count
Структура запроса:
GET /cars/groups/count?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат:text
{
10
}
// количество доступных групп
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Все существующие группы
Доступно только для главных (всевидящих) администраторов
GET /cars/groups/wheel
Структура запроса:
GET /cars/groups/wheel?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 703,
"name": "003",
"notes": null,
"organizationId": 1
}
]
// массив объектов с информацией по группе
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — cars (before delete /wheel)
Транспортные средства
Список ТС
GET /cars
Структура запроса:
GET /cars?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 1,
"name": "Название ТС",
"glonassId": 1298,
"view": true,
"lastUpdate": 1400843454000,
"onService": false,
"iconStandard": true,
"iconIndex": 14,
"toDelete": false,
"markId": 37,
"modelId": 647,
"groupId": 62,
"speed": 0.0,
"direction": 0,
"lat": 0.0,
"lon": 0.0,
"carNo": "А343ВВ 116RUS",
"organizationId": 62,
"isStopped": false,
"tagsIds": [1,21]
},...]
// id ТС, целое число
// название, строка
// id ГЛОНАСС, целое число
// является ли видимой, булевое поле
// последнее обновление, timestamp
// ТС на сервисном обслуживании, булевое поле
// стандартная иконка, булевое поле
// индекс иконки, целое число
// ТС в процессе удаления, булевое поле
// id марки, целое число
// id модели, целое число
// id группы, целое число
// текущая скорость, число с плавающей точкой
// угол, под которым вошло ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// номер ТС, строка
// id организации, целое число
// остановлена, булевое поле
// id меток, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Список ТС (без фильтрации)
Доступно только для всевидящих пользователей
GET /cars/wheel
Структура запроса:
GET /cars/wheel?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[
{
"id": 3906,
"name": "autotracker",
"glonassId": 386,
"view": true,
"lastUpdate": null,
"projectPoints": false,
"onService": false,
"iconStandard": true,
"iconIndex": 1,
"toDelete": false,
"markId": 23,
"modelId": 42,
"groupId": 1,
"speed": 0,
"direction": 0,
"lat": 0,
"lon": 0,
"carNo": "3906",
"organizationId": 1,
"isStopped": false,
"tagsIds": [ ]
}
]
// массив объектов с ТС
// id ТС, целое число
// название, строка
// id ГЛОНАСС, целое число
// является ли видимой, булевое поле
// последнее обновление, timestamp
// ТС на сервисном обслуживании, булевое поле
// стандартная иконка, булевое поле
// индекс иконки, целое число
// машина в процессе удаления, булевое поле
// id марки, целое число
// id модели, целое число
// id группы, целое число
// текущая скорость, целое число
// угол, под которым вошло ТС, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// номер ТС, строка
// id организации, целое число
// остановлена, булевое поле
// id меток, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Количество ТС
GET /cars/count
Структура запроса:
GET /cars/count?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: text
1103
// количество ТС
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о ТС по id
GET /cars/{id}
Структура запроса:
GET /cars/3889?token=bw3ty3h46yth
id: id TC
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 3889,
"name": "autotracker",
"glonassId": 369,
"view": true,
"group": {
"id": 1,
"name": "Градосервис",
"notes": "",
"organizationId": 1
},
"lastUpdate": 1381200202000,
"onService": false,
"devphone": "+79131558214",
"devimei": null,
"iconStandard": true,
"iconIndex": 1,
"toDelete": false,
"info": {
"id": {
"carId": 369,
"data": 1381200202000
},
"speed": 0,
"direction": 0,
"height": 0,
"odometr": 0,
"gpsCount": 0,
"glonassCount": 0,
"sysData": 1381200245287,
"lat": 54.9106,
"lon": 85.642
},
"carInfo": {
"carId": 3889,
"mark": {
"id": 23,
"name": "ТестМарка"
},
"model": {
"id": 42,
"name": "ТестМодель",
"mark": {
"id": 23,
"name": "ТестМарка"
},
"expenseOn100km": 1100,
"maxTank": 999,
"motohoursStop": 1,
"motohoursMove": 1.13,
"markId": 23
},
"kmNextTo": 0,
"carNo": "3889",
"notes": "0",
"customFields": {
}
},
"stopped": {
"carId": 3889,
"stoped": true,
"stopedBegin": 1381137338000,
"stopEvent": 249950
},
"tags": [ ],
"motohours": {
"carId": 3889,
"stop": null,
"move": null
},
"markId": 23,
"modelId": 42,
"hasPic": false,
"driversIds": [
541,
441
],
"organizationId": 374,
"tagsIds": [ ]
}
// id ТС, целое число
// название, строка
// id ГЛОНАСС, целое число
// является ли видимой, булевое поле
// группа ТС, объект
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
// последнее обновление, timestamp
// на сервисном обслуживании, булевое поле
// номер телефона блока навигации, строка
// imei блока навигации, строка
// стандартная иконка, булевое поле
// индекс иконки, целое число
// в процессе удаления, булевое поле
// дополнительная информация, объект
// информация об id, объект
// id ТС, целое число
// данные, целое число
// текущая скорость, целое число
// угол вхождения ТС, целое число
// высота точки, целое число
// показатели одометра, целое число
// количество GPS спутников, целое число
// количество ГЛОНАСС спутников, целое число
// время, в которое точка записывается в базу данных, timestamp
// ширина, число с плавающей точкой
// долгота, число с плавающей точкой
// информация о ТС, объект
// id ТС, целое число
// марка ТС, объект
// id марки, целое число
// название марки, строка
// модель ТС, объект
// id модели, целое число
// название модели, строка
// марка ТС, объект
// id марки, целое число
// название марки, строка
// расход на 100км, целое число
// объем бака (в литрах), целое число
// коэффициент моточасов на стоянке, число с плавающей точкой
// коэффициент моточасов при движении, число с плавающей точкой
// id марки, целое число
// км до ТО, целое число
// номер ТС, строка, строка
// описание, строка, строка
// дополнительные поля, объект
// информация об остановке, объект
// id ТС, целое число
// остановлена, булевое поле
// время остановки, timestamp
// id события, целое число
// метки, массив
// моточасы, объект
// id ТС, целое число
// коэффициент моточасов на стоянке, целое число
// коэффициент моточасов при движении, целое число
// id марки, целое число
// id модели, целое число
// наличие картинки, булевое поле
// id водителей, массив
// id организации, целое число
// id меток, массив
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о нескольких ТС по ID
GET /cars/in/{id}
Структура запроса:
GET /cars/in/3889,5479,457?token=bw3ty3h46yth
id: id TC (через запятую)
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 3889,
"name": "Название ТС",
"glonassId": 51585,
"view": true,
"lastUpdate": null,
"onService": false,
"iconStandard": true,
"iconIndex": 45,
"toDelete": false,
"markId": 1,
"modelId": 1,
"groupId": 322,
"speed": 0.0,
"direction": 0,
"lat": 0.0,
"lon": 0.0,
"organizationId": 242,
"carNo": "К983ЕЕ",
"isStopped": false,
"tagsIds": []
},...]
// id ТС, целое число
// название ТС, строка
// ГЛОНАСС id, целое число
// является ли видимым, булевое поле
// дата последнего обновления, timestamp
// на сервисе, булевое поле
// стандартная иконка, булевое поле
// индекс иконки, целое число
// в процессе удаления, булевое поле
// id марки, целое число
// id модели, целое число
// id группы, целое число
// скорость, число с плавающей точкой
// направление, целое число
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// id организации, целое число
// номер ТС, строка
// на остановке, булевое поле
// id меток, массив
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Информация о зоне, в которой находится выбранное ТС
GET /cars/{id}/zones/current
Структура запроса:
GET /cars/2167/zones/current?token=bw3ty3h46yth
id: id TC
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 2167,
"geom": {
"type": "Polygon",
"coordinates": [[58.27148438,60.06484046],
[41.74804688,59.08573857],
[42.62695313,50.34546041],
[58.09570313,50.56928287],
[58.27148438,60.06484046]]
},
"name": "BASENOT",
"color": "7aff33",
"active": true,
"isBase": false,
"organizationId": 102,
"coordinates": [[58.27148438,60.06484046],
[41.74804688,59.08573857],
[42.62695313,50.34546041],
[58.09570313,50.56928287],
[58.27148438,60.06484046]],
"carsIds": [121748,121714,121710,121716,121711,121715,
007,135293]
}]
// id ТС, целое число
// информация о геометрии, объект
// тип геометрии, строка
// координаты, массив
// название, строка
// цвет, строка
// является активным, булевое поле
// является базой, булевое поле
// id организации, целое число
// координаты, массив
// id ТС, массив
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование ТС
Доступно только для пользователей с правами администратора
PUT /cars/{id}
Структура запроса:
PUT /cars/4339?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Формат: json
{
"carNo": "В653АА 177rus",
"devphone": "5214578",
"driversIds": [],
"glonassId": 113112,
"groupId": 2682,
"kmNextTo": 1520,
"markId": 208,
"modelId": 1688,
"name": "Новое ТС организации",
"notes": "New description"
}
// номер ТС, строка
// телефон блока, строка
// id водителей, массив
// ГЛОНАСС id, целое число
// id группы, целое число
// км до следующего ТО, целое число
// id марки, целое число
// id модели, целое число
// название ТС, строка
// примечания, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 136773,
"name": "Новое ТС организации",
"glonassId": 113112,
"view": true,
"group": {
"id": 2682,
"name": "Группа ТС",
"notes": "",
"organizationId": 137
},
"lastUpdate": 1436968856000,
"onService": false,
"devphone": "5214578",
"devimei": null,
"iconStandard": true,
"iconIndex": 1,
"toDelete": false,
"info": {
"id": {
"carId": 136773,
"data": 1436968856000
},
"speed": 31.0,
"direction": 277,
"height": 100,
"odometr": 31,
"gpsCount": 0,
"glonassCount": 0,
"sysData": 1436968854940,
"lat": 55.7269264101253,
"lon": 49.045337677002
},
"carInfo": {
"carId": 136773,
"mark": {
"id": 208,
"name": "Audi"
},
"model": {
"id": 1688,
"name": "model",
"mark": {
"id": 208,
"name": "TT"
},
"expenseOn100km": 100.0,
"maxTank": 200,
"motohoursStop": 3.0,
"motohoursMove": 2.0,
"markId": 208
},
"kmNextTo": 1520.0,
"carNo": "in car",
"notes": "New description",
"customFields": {
}
},
"stopped": {
"carId": 136773,
"stoped": false,
"stopedBegin": 1436958766000,
"stopEvent": null
},
"tags": [],
"motohours": {
"carId": 136773,
"stop": null,
"move": null
},
"markId": 208,
"modelId": 1688,
"hasPic": false,
"driversIds": [],
"organizationId": 137,
"tagsIds": []
}
// id ТС, целое число
// название ТС, строка
// ГЛОНАСС id, целое число
// является ли видимым, булевое поле
// информация о группе, объект
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
// дата последнего обновления, timestamp
// находится на ТО, булевое поле
// номер телефона блока навигации, строка
// imei блока навигации, целое число
// стандартная иконка, булевое поле
// индекс иконки, целое число
// в процессе удаления, булевое поле
// дополнительная информация, объект
// информация об id, объект
// id ТС, целое число
// данные
// скорость, число с плавающей точкой
// направление, целое число
// высота точки, целое число
// показания одометра, целое число
// число gps, целое число
// число глонасс, целое число
// системное время, timestamp
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// информация о ТС, объект
// id ТС, целое число
// информация о марке, объект
// id марки, целое число
// название марки, строка
// информация о модели, объект
// id модели, целое число
// название модели, строка
// информация о марке модели, объект
// id марки, целое число
// название марки, строка
// расход на 100 км, число с плавающей точкой
// максимальный объем бака, целое число
// коэффициент моточасов на остановке, число с плавающей точкой
// коэффициент моточасов в движении, число с плавающей точкой
// id марки, целое число
// км до следующего ТО, число с плавающей точкой
// номер ТС, строка
// примечания, строка
// дополнительные поля
// информация об остановках ТС, объект
// id ТС, целое число
// ТС остановилось, булевое поле
// время начала остановки, timestamp
// событие остановки
// метки, массив
// моточасы, объект
// id ТС, целое число
// коэффициент при остановке, число с плавающей точкой
// коэффициент при движении, число с плавающей точкой
// id марки, целое число
// id модели, целое число
// есть картинка, булевое поле
// id водителей, массив
// id организации, целое число
// id меток, массив
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление ТС
Доступно только для пользователей с правами администратора
POST /cars
Структура запроса:
POST /cars?token=bw3ty3h46yth
token: ключ доступа
Формат: json
{
"carNo": "21321",
"devphone": "1425265",
"driversIds": [],
"glonassId": "25252321",
"groupId": "4901",
"iconIndex": 222,
"kmNextTo": "2342",
"markId": "150",
"modelId": "1621",
"name": "new name",
"notes": "",
"pic": null,
"tagsIds": [1942, 1501]
}
// номер ТС, строка
// номер телефона блока навигации, строка
// id водителей, массив
// ГЛОНАСС id, целое число
// id группы, целое число
// индекс иконки, целое число
// км до ТО, целое число
// id марки, целое число
// id модели, целое число
// название, строка
// описание, строка
// картинка, строка
// id меток, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"carInfo": {
"carId": 4339,
"carNo": "0000001",
"kmNextTo": 0,
"mark": {
"id": 410,
"name": "000 MArk from all org ",
},
"model": {
"expenseOn100km": 11,
"id": 1680,
"mark": {
"id": 410,
"name": "000 MArk from all org ",
},
"markId": 410,
"maxTank": 100,
"motohoursMove": 1,
"motohoursStop": 1,
"name": "11",
},
"notes": "",
},
"devimei": null,
"devphone": "",
"direction": 0,
"driversIds": [],
"glonassId": 100000,
"group": {
"extGroup": null,
"id": 701,
"name": "001",
"notes": null,
"organizationId": 1143,
"view": true,
},
"hasPic": false,
"iconIndex": 1,
"iconStandard": true,
"id": 4339,
"info": null,
"lastUpdate": null,
"markId": "410",
"modelId": "1680",
"motohours": {
"carId": 4339,
"move": null,
"stop": null,
},
"name": "00000005",
"onService": false,
"projectPoints": false,
"stopped": {
"carId": 4339,
},
"tags": [],
"tagsIds": null,
"toDelete": false,
"view": true
}
// информация о ТС
// id ТС, целое число
// номер ТС, строка
// км до ТО, целое число
// марка ТС, строка
// id марки, целое число
// название марки, строка
// модель ТС, строка
// расход на 100км, целое число
// id модели, целое число
// марка ТС, строка
// id марки, целое число
// название марки, строка
// id марки, целое число
// объем бака (в литрах), целое число
// коэффициент моточасов на стоянке, целое число
// коэффициент моточасов при движении, целое число
// название модели, строка
// описание, строка
// imei блока навигации, целое число
// номер телефона блока навигации, строка
// угол, под которым вошло ТС, целое число
// id водителей, массив
// ГЛОНАСС id, целое число
// объект группы
// id группы, целое число
// название группы, строка
// описание группы, строка
// id организации, целое число
// видима ли, булевое поле
// наличие картинки, булевое поле
// индекс иконки, целое число
// стандартная иконка, булевое поле
// id ТС, целое число
// информация, строка
// последнее обновление, timestamp
// id марки, целое число
// id модели, целое число
// объект моточасов
// id ТС, целое число
// коэффициент моточасов при движении, целое число
// коэффициент моточасов на стоянке, целое число
// название ТС, строка
// на сервисном обслуживании, булевое поле
// id ТС, целое число
// метки, массив
// id меток, массив
// в процессе удаления, булевое поле
// видима ли, булевое поле
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление ТС
Доступно только для пользователей с правами администратора
DELETE /cars/{id}
Структура запроса:
DELETE /cars/51?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Экспорт ТС
Доступно только для пользователей с правами администратора
GET /cars.xlsx
Структура запроса:
GET /cars.xlsx?token=gtr543lpas87
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
Успешное выполнение запроса
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Фотография ТС
GET /cars/{id}/pic
Структура запроса:
GET /cars/67/pic?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: image/png
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Уменьшенная фотография ТС
GET /cars/{id}/thumb
Структура запроса:
GET/cars/23/thumb?token=gtr543lpas87
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: image/png
Успешное выполнение запроса
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — JasperReports
JasperReports
JasperReports — это Java-библиотека для создания отчётов. На основе XML-шаблонов отчётов генерируются готовые для печати документы, консолидирующие данные из различных источников, в том числе JDBC. Отчёты могут выводиться на экран, принтер, либо в форматы PDF, RTF, HTML, XLS, CSV и XML. Основной частью шаблона является SQL-запрос, который указывает какие данные необходимо выбрать из базы данных для генерации отчёта. В XML-шаблоне допустимо применение стилей и выражений (для проверки или вычисления результата). Также возможна группировка данных по требуемому полю.
По шаблонам отчетов JasperReports можно составлять отчеты для отдельного ТС, нескольких ТС, групп ТС, а также составлять дополнительные отчеты.
Automap — rest — error 400
Ошибка 400 Bad Request
В запросе обнаружена синтаксическая ошибка.
Формат: text/plain
Содержание ошибки:
{
"%field_name_1%": [
"%reason_1%"
],
"%field_name_2%": [
"%reason_2%"
]
}
// поле с ошибкой
// причина возникновения ошибки
Automap — rest — authorization-token
Авторизация с последующим использованием ключа доступа
Авторизация
POST /token/auth
Структура запроса:
Формат: json
{
"login": "login",
"password": "password"
}
// логин, строка
// пароль, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"token": "ethryhetyjtyj",
"refreshToken": "ethryhetyjtyj",
"ttl": 3600
}
// ключ доступа, строка
// ключ для обновления ключа доступа, строка
// время жизни ключа доступа в секундах, целое число
Статус: 401 — логин или пароль переданы неверно
Формат: text/plain
Содержание ошибки: «Вы ввели неверное имя или пароль!»
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Обновление ключа доступа
GET /token/refresh
Структура запроса:
GET /token/refresh?refreshToken=bw3ty3h46yth
refreshToken:ключ для обновления ключа доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"token": "ethryhetyw4564",
"refreshToken": "yrjryukryukryu",
"ttl": 3600
}
// новый ключ доступа, строка
// новый ключ для обновления ключа доступа, строка
// время жизни ключа доступа в секундах, целое число
Статус: 400 — не передан параметр refreshToken
Формат: text/plain
Содержание ошибки: «Не найден параметр refreshToken»
Статус: 404 — параметр refreshToken не найден в системе
Формат: text/plain
Содержание ошибки: «Данный refreshToken не найден в системе»
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход из системы (с удалением ключа доступа)
GET /token/logout
Структура запроса:
GET /token/logout?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — authorization
Авторизация
Авторизация
POST /users/auth
Структура запроса:
Формат: json
{
"login": "login",
"pass": "pass"
}
// логин, строка
// пароль, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"status": 1
}
Статус: 401 — логин или пароль переданы неверно
Формат: text/plain
Содержание ошибки: «Вы ввели неверное имя или пароль!»
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Выход из системы
GET /users/logout
Структура запроса:
GET /users/logout
Ответ:
Статус: 200 — успешное выполнение
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — motoHours
Моточасы
Моточасы конкретного ТС
GET /cars/{id}/motohours
Структура запроса:
GET /cars/3973/motohours?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"carId": 3973,
"stop": 10,
"move": null
}
// id ТС, целое число
// коэффициент моточасов на стоянке, целое число
// коэффициент моточасов при движении, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление моточасов
POST /cars/{id}/motohours
Структура запроса:
POST /cars/1887/motohours?token=gtr543lpas87
id: id ТС
token: ключ доступа
Пример запроса:
Статус: 200 — успешное выполнение
Формат: json
{
"stop": 4,
"move": 13
}
// коэффициент моточасов на стоянке, целое число
// коэффициент моточасов при движении, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"carId": 1887,
"stop": null,
"move": null
}
// id ТС, целое число
// коэффициент моточасов на стоянке, целое число
// коэффициент моточасов при движении, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование значения моточасов
Доступно только для пользователей с правами администратора
PUT /cars/{id}/motohours
Структура запроса:
PUT /cars/4/motohours?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Формат: json
{
"move": null,
"stop": 11
}
// коэффициент моточасов при движении, целое число
// коэффициент моточасов на стоянке, целое число
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"carId": 4,
"move": null,
"stop": 11
}
// id ТС, целое число
// коэффициент моточасов при движении, целое число
// коэффициент моточасов на стоянке, целое число
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление значения моточасов
Доступно только для пользователей с правами администратора
DELETE /cars/{id}/motohours
Структура запроса:
DELETE /cars/157/motohours?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — sockets
Сокеты
Подключение вебсокета
GET /ws
Структура запроса:
GET /ws?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Подключение сокета
GET /comet
Структура запроса:
GET /comet?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Отправление запроса через сокет
Доступно только для всевидящих администраторов
POST /comet/msg/$sessionId<[0-9a-z\-]+>
Структура запроса:
POST /comet/msg/dfd2134erfe?token=bw3ty3h46yth
sessionId: id сессии
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Automap — rest — gauges
Датчики
Датчики определенного ТС
GET /cars/{id}/gauges
Структура запроса:
GET /cars/4357/gauges?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"carId": 4357,
"glonassId": 909060,
"port": 23,
"name": "Название датчика",
"categoryId": 2,
"typeId": 41,
"analogToDin": false,
"din": false,
"dinInvert": false,
"analog": 62.0,
"updateData": 1428327427000,
"id": 1448,
"analogMin": null,
"analogMax": null,
"analogStep": null,
"analogAlarm": false,
"dinAlarm": false
},...]
// id ТС, целое число
// ГЛОНАСС id, целое число
// порт, целое число
// название датчика, строка
// id категории датчика, целое число
// id типа датчика, целое число
// аналоговый в цифровой, булевое поле
// цифровой, булевое поле
// цифровой инвертированный, булевое поле
// значение аналогового датчика, число с плавающей точкой
// дата обновления, timestamp
// id датчика, целое число
// аналоговый, с фиксацией события меньше, чем значение данного поля
// аналоговый, с фиксацией события больше, чем значение данного поля
// аналоговый, с фиксацией события при изменении шага меньше чем значение поля
// оповещение по аналоговому датчику, булевое поле
// оповещение по цифровому датчику, булевое поле
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Добавление датчика ТС
Доступно только для пользователей с правами администратора
POST /cars/{id}/gauges
Структура запроса:
POST /cars/4297/gauges?token=bw3ty3h46yth
id: id ТС
token: ключ доступа
Пример запроса:
{
"categoryId": "2",
"name": "Новый датчик",
"unitName": "Секунды"
}
// id категории датчика, целое число
// название датчика, строка
// единица измерения, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"id": 381,
"name": "Новый датчик",
"dinAlarm": false,
"unitName": "Секунды",
"port": null,
"systemType": 0,
"categoryId": 2
}
// id датчика, целое число
// название датчика, строка
// оповещение, булевое поле
// единица измерения, строка
// номер порта, целое число
// тип системы, целое число
// id категории, целое число
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Снятие датчика с ТС
Доступно только для пользователей с правами администратора
DELETE /cars/{carid}/gauges/{port}/{typeid}
Структура запроса:
DELETE /cars/59/gauges/1334/2?token=bw3ty3h46yth
carId: id ТС
port: порт
typeId: id типа
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Категории датчиков
GET /gauges/categories
Структура запроса:
GET /gauges/categories?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 1,
"name": "Цифровой",
"shortName": "din"
},...]
// id категории, целое число
// название категории, строка
// сокращенное название категории
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Типы датчиков
GET /gauges/types
Структура запроса:
GET /gauges/types?token=bw3ty3h46yth
token: ключ доступа
Параметры фильтрации
GET /gauges/types?types.port=26&dinAlarm=true
name: получение списка типов датчиков по названию
category: поиск типов датчиков, принадлежащих хотя бы одной из заданных категорий
dinAlarm: получение списка типов датчиков, являющиеся цифровыми с оповещениями или нет, в соответствии заданному булевому значению
unitName: поиск типов датчиков по названию единиц измерения
types.port: поиск типов датчиков по номеру порта
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id": 2,
"name": "Название датчика",
"dinAlarm": false,
"unitName": null,
"port": null,
"categoryId": 2
},...]
// id типа, целое число
// название типа, строка
// цифровой с оповещением, булевое поле
// единицы измерения, строка
// порт, целое число
// id категории, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Создание датчика
Доступно только для пользователей с правами администратора
POST /gauges/types
Структура запроса:
POST /gauges/types?token=bw3ty3h46yth
token: ключ доступа
Формат: json
{
"categoryId": 3,
"name": "название датчика"
}
// id категории, целое число
// название датчика, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"categoryId": 3,
"dinAlarm": false,
"id": 243,
"name": "название датчика",
"port": null,
"unitName": null
}
// id категории, целое число
// цифровой с оповещением, булевое поле
// id датчика, целое число
// название датчика, строка
// порт, целое число
// единицы измерения, строка
Статус: 400 — ошибка в запросе
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Редактирование датчика
Доступно только для пользователей с правами администратора
PUT /gauges/types/{id}
Структура запроса:
PUT /gauges/types/14?token=bw3ty3h46yth
id: id типа датчика
token: ключ доступа
Формат: json
{
"categoryId": 4,
"dinAlarm": false,
"id": 243,
"name": "test",
"port": null,
"unitName": null
}
// id категории, целое число
// цифровой с оповещением, булевое поле
// id датчика, целое число
// название датчика, строка
// порт, целое число
// единицы измерения, строка
Ответ:
Статус: 200 — успешное выполнение
Формат: json
{
"categoryId": 4,
"dinAlarm": false,
"id": 243,
"name": "test",
"port": null,
"unitName": null
}
// id категории, целое число
// цифровой с оповещением, булевое поле
// id датчика, целое число
// название датчика, строка
// порт, целое число
// единицы измерения, строка
Статус: 400 — ошибка в запросе
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Удаление датчика
Доступно только для пользователей с правами администратора
DELETE /gauges/types/{id}
Структура запроса:
DELETE /gauges/types/3?token=bw3ty3h46yth
id: id типа датчика
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки
Датчики, которые выводят оповещения на экран
GET /gauges/alarm
Структура запроса:
GET /gauges/alarm?token=bw3ty3h46yth
token: ключ доступа
Ответ:
Статус: 200 — успешное выполнение
Формат: json
[{
"id":1,
"unitName": null,
"dinAlarm": true,
"analogMin": null,
"analogMax": null,
"analogStep": null,
"analogAlarm": false,
"dinInvert": true,
"analogToDin": false,
"autoDisable": null,
"disableTimeout": null,
"disablePeriodStart": null,
"disablePeriodEnd": null,
"name": "название датчика",
"port": 66,
"carId": 4158,
"categoryId": 1,
"typeId": 46
},...]
// id датчика, целое число
// единица измерения, строка
// цифровой с оповещением, булевое поле
// аналоговый, с фиксацией события меньше чем значение данного поля, булевое поле
// аналоговый, с фиксацией события больше чем значение данного поля, булевое поле
// аналоговый, с фиксацией события при изменении шага меньше чем значение поля
// аналоговый с оповещением, булевое поле
// инвертировать цифровой, булевое поле
// аналоговый в цифровой, булевое поле
// автоматическое отключение, булевое поле
// отключить начало периода, булевое поле
// отключить конец периода, булевое поле
// название датчика, строка
// порт, целое число
// id ТС, целое число
// id категории, целое число
// id типа, целое число
Статус: 404 — объект не найден
Формат: text/plain
Содержит описание ошибки
Статус: 500 — ошибка на сервере
Формат: text/plain
Содержит описание ошибки