Документация-вспомогательные

MapSurfer — rest — dictionary

Доступно только для пользователей с правами администратора

GET /dictionary/icons

Структура запроса:


GET /dictionary/icons?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[{
    "id": 99,
    "name": "red",
    "width": 73,
    "ownerOrganizationId": null,
    "height": 72
},...]



// id справочника, целое число
// название справочника, строка
// ширина, целое число
// id организации, пользователь которой добавил справочник
// высота, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /dictionary/icons/editable

Структура запроса:


GET /dictionary/icons/editable?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[{
    "id": 99,
    "name": "red",
    "width": 73,
    "ownerOrganizationId": null,
    "height": 72
},...]



// id справочника, целое число
// название справочника, строка
// ширина, целое число
// id организации, пользователь которой добавил справочник
// высота, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

POST /dictionary/icons

Структура запроса:


POST /dictionary/icons?token=mbs90lon2a8

token: ключ доступа

Пример запроса:

Формат: json


{
    "name": "Справочник",
    "uuid": "p1996qif28t071sb22us1hd93lon.png"
}



// название справочника, строка
// uuid изображения, строка

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "id": 51,
    "name": "Справочник",
    "width": 1258,
    "height": 750
}



// id справочника, целое число
// название справочника, строка
// ширина, целое число
// высота, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

PUT /dictionary/icons/{id}

Структура запроса:


PUT /dictionary/icons/51?token=mbs90lon2a8

id: id справочника

token: ключ доступа

Пример запроса:

Формат: json


{
    "id": 51,
    "name": "Новое название справочника",
    "uuid": "p1996qif28t071sb22us1hd93lon.png"
}



// id справочника, целое число
// название справочника, строка
// uuid изображения, строка

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "id": 51,
    "name": "Новое название справочника",
    "width": 1258,
    "height": 750
}



// id справочника, целое число
// название справочника, строка
// ширина, целое число
// высота, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

DELETE /dictionary/icons/{id}

Структура запроса:


DELETE /dictionary/icons/51?token=mbs90lon2a88

id: id справочника

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "delete": true
}

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /dictionary/icons/{id}/view

Структура запроса:


GET /dictionary/icons/23/view?token=mbs90lon2a8

id: id справочника

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: image/jpeg и т.д.

Изображение выбранного справочника

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Нет комментариев

MapSurfer — rest — datastore

Доступно только для пользователей с правами администратора

GET /datastores

Структура запроса:


GET /datastores?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[{
    "id": 1,
    "name": "Datastore",
    "host": "192.168.63.36",
    "port": 5432,
    "database": "data",
    "login": "login",
    "isInfrastructure": true,
    "schemaName": "data"
},...]



// id хранилища, целое число
// название хранилища, строка
// хост, строка
// порт, целое число
// база данных, строка
// логин, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

POST /datastores

Структура запроса:


POST /datastores?token=mbs90lon2a8

token: ключ доступа

Пример запроса:

Формат: json


{
    "name": "Datastore",
    "host": "192.168.63.36",
    "port": 5432,
    "database": "data",
    "login": "login",
    "isInfrastructure": true,
    "schemaName": "data"
}



// название хранилища, строка
// хост, строка
// порт, целое число
// база данных, строка
// логин, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "id": 25,
    "name": "Datastore",
    "host": "192.168.63.36",
    "port": 5432,
    "database": "data",
    "login": "login",
    "isInfrastructure": true,
    "schemaName": "data"
}



// id хранилища, целое число
// название хранилища, строка
// хост, строка
// порт, целое число
// база данных, строка
// логин, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

PUT /datastores/{id}

Структура запроса:


PUT /datastores/64?token=mbs90lon2a8

id: id хранилища

token: ключ доступа

Пример запроса:

Формат: json


{
    "id": 64,
    "name": "Datastore",
    "host": "192.164.63.32",
    "port": 5874,
    "database": "data",
    "login": "login",
    "password": "654321",
    "isInfrastructure": true,
    "schemaName": "data"
}



// id хранилища, целое число
// название хранилища, строка
// хост, строка
// порт, целое число
// база данных, строка
// логин, строка
// пароль, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "id": 64,
    "name": "Datastore",
    "host": "192.164.63.32",
    "port": 5874,
    "database": "data",
    "login": "login",
    "isInfrastructure": true,
    "schemaName": "data"
}



// id хранилища, целое число
// название хранилища, строка
// хост, строка
// порт, целое число
// база данных, строка
// логин, строка
// из инфраструктуры, булевое поле
// название схемы, с которой работает хранилище, строка

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

DELETE /datastores/{id}

Структура запроса:


DELETE /datastores/64?token=mbs90lon2a8

id: id хранилища

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
    "delete": true
}

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /datastores.xlsx

Структура запроса:


GET /datastores.xlsx?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

Возвращает бинарный файл

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /datastores/projections

Структура запроса:


GET /datastores/projections?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение


[{
    "projection": "EPSG:3819"
},...]



// проекция

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /datastores/{id}/projections

Структура запроса:


GET /datastores/42/projections?token=mbs90lon2a8

id: id хранилища

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение


[{
    "projection": "EPSG:3819"
},...]



// проекция

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /datastores/{id}/tables

Структура запроса:


GET /datastores/42/tables?token=mbs90lon2a8

id: id хранилища

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение


[{
    "datastoreId": 42,
    "tableId": 0,
    "layerId": null,
    "nameDb": "departments_news_points",
    "geometryType": "POINT"
},...]



// id хранилища, целое число
// id таблицы, целое число
// id слоя, целое число
// название базы данных, строка
// тип геометрии, строка

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /datastores/{id}/tables/{tablename}

Структура запроса:


GET /datastores/42/tables/test_table?token=mbs90lon2a8

id: id хранилища

tablename: название таблицы

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение


{
    "geometryType": "multilinestring",
    "name": "test_table",
    "title": "Тестовая таблица",
    "style": {
        "styleName": null,
        "geoCss": "* {\n stroke-dashoffset: 0;\n}",
        "base": false,
        "simple": false
    },
    "dataStoreId": 22,
    "attributes": [{
        "name": "attribute",
        "rusName": "Атрибут",
        "type": null,
        "isTitle": null,
        "title": null,
        "isView": true,
        "view": true,
        "order": null
    },...]
}



// тип геометрии, строка
// название таблицы, строка
// русское название таблицы, строка
// стили, объект
// название стиля, строка
// geocss стиль, строка
// базовый, булевое поле
// простой, булевое поле

// id хранилища, целое число
// атрибуты таблицы, массив
// название атрибута, строка
// русское название атрибута, строка
// тип, строка
// является заголовком, булевое поле
// заголовок, строка
// доступен к просмотру, булевое боле
// просмотр, булевое поле
// порядковый номер, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Нет комментариев

Automap — rest — ways

GET /ways

Структура запроса:


GET /ways?token=gtr543lpas87	

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
	"id": 805,
	"geom": {
		"type": "LineString",
		"coordinates": 
			[[48.38378906,54.0916173],
			[49.9822998,54.27163997]]
	},
	"name": "Название маршрута",
	"color": "ff0000",
	"active": true,
	"organizationId": 102,
	"coordinates": 
		[[48.38378906,54.0916173],
		[49.9822998,54.27163997]]
},…]

// id маршрута, целое число
// информация о типе геометрии, объект
// тип геометрии, строка
// координаты, массив



// название маршрута, строка
// цвет маршрута, строка

// id организации, целое число
// координаты, массив

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

POST /ways

Структура запроса:


POST /ways?token=gtr543lpas87

token: ключ доступа

Пример запроса:

Формат: json

{
	"color": "ff9900",
	"geom": {
		"coordinates": [[48.54789733886719,
		56.8433391974011],
		[48.830108642578125, 56.85873346253295]],
		"type": "LineString"
	},
	"name": "Маршрут",
	"organizationId": 1
}

// цвет, строка
// информация о геометрии, объект
// координаты, массив


// тип, строка

// название маршрута, строка
// id организации, целое число

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 2101,
	"geom": {
		"type": "LineString",
		"coordinates": [[48.54789734,
		56.8433392]]
	},
	"name": "Маршрут",
	"color": "ff9900",
	"active": true,
	"organizationId": 1,
	"coordinates": [[48.54789733886719,
	56.8433391974011]]
}

// id маршрута, целое число
// информация о типе геометрии, объект
// тип геометрии, строка
// координаты, массив


// название маршрута, строка
// цвет маршрута, строка

// id организации, целое число
// координаты, массив

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /ways/{id}

Структура запроса:


GET /ways/805?token=gtr543lpas87	

id: id маршрута

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
	"id": 805,
	"geom": {
		"type": "LineString",
		"coordinates": 
			[[48.38378906,54.0916173],
			[49.9822998,54.27163997]]
	},
	"name": "Название маршрута",
	"color": "ff0000",
	"active": true,
	"organizationId": 102,
	"coordinates": 
		[[48.38378906,54.0916173],
		[49.9822998,54.27163997]]	
},...]

// id маршрута, целое число
// информация о типе геометрии
// тип геометрии, строка
// координаты, массив



// название маршрута, строка
// цвет маршрута, строка

// id организации, целое число
// координаты, массив



Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

PUT /ways/{id}

Структура запроса:


PUT /ways/806?token=gtr543lpas87	

id: id маршрута

token: ключ доступа

Пример запроса:

Формат: json

{
	"color": "000dff",
	"geom": {
		"coordinates": [[48.75663757,
		56.8645516],
		[48.7147522,
		56.81873278]],
		"type": "LineString"
	},
	"name": "Новое название",
	"organizationId": 242
}

// цвет, строка
// информация о геометрии
// координаты

// тип, строка

// название маршрута, строка
// id организации, целое число

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 806,
	"geom": {
		"type": "LineString",
		"coordinates": [[48.75663757,56.8645516],
		[48.7147522,56.81873278]]
	},
	"name": "Новое название",
	"color": "000dff",
	"active": true,
	"organizationId": 242,
	"coordinates": [[48.75663757,56.8645516],
	[48.7147522,56.81873278]]
}

// id маршрута, целое число
// информация о типе геометрии, объект
// тип геометрии, строка
// координаты, массив



// название маршрута, строка
// цвет маршрута, строка

// id организации, целое число
// координаты, массив

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

DELETE /ways/{id}

Структура запроса:


DELETE /ways/806?token=bw3ty3h46yth

id: id маршрута

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Нет комментариев

REST API Сервис построения маршрутов

API сервиса построения маршрутов router.geo4.me

Определение местоположения

Данный сервис необходим для определения местоположения ближайшей точки дорожной сети к указанной координате.
Ближайшая точка определяется при отправке запроса следующего формата:

GET/locate?loc=lat,lon

Структура запроса:


GET/locate?loc=52.4224,13.333086

lat: широта
lon: долгота

Ответ:


{
	"mapped_coordinate": [52.42244, 13.332101],
	"status": 0
}


// координаты на карте
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута

Ближайшая точка

Данный сервис позволяет определить ближайшую точку на некотором участке улицы дорожной сети к указанной координате.
Ближайшая точка определяется при отправке запроса следующего формата:

GET/nearest?loc=lat,lon

Структура запроса:


GET/nearest?loc=52.4224,13.333086

lat: широта

lon: долгота

Ответ:


{
	"name": "Mariannenstraße",
	"mapped_coordinate": [52.422592, 13.333837],
	"status": 0
}


// название улицы
// координаты на карте
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута

При использовании вышеупомянутого синтаксиса ответ приходит в формате JSON, который может быть дополнительно обработан многими языками программирования. При этом на выходе данные могут быть отформатированы как JSONP:


GET/nearest?52.555485441735&13.342227642887&jsonp=function

Запрос возвращает результат в формате JSON, обёрнутый функцией (), которая может быть легко переработана при помощи JavaScript:


function({"status":0,"result":[52.55567, 13.34252]"})

Построение маршрута

Данный сервис позволяет построить кратчайший маршрут через указанные координаты с учетом порядка следования координат. Основные точки между координатами (lat1, lon1) и (lat2, lon2) запрашиваются следующим образом:

GET/viaroute?loc=lat1,lon1&loc=lat2,lon2

Структура запроса:


GET/viaroute?loc= 55.7887400, 49.1221400&loc= 55.8437600, 48.5178400

lat: широта

lon: долгота

Чтобы построить маршрут через определенные координаты, перечислите их в запросе string в порядке своего появления (на текущий момент стоит максимальное ограничение в 25 точек).

При построении маршрута появляется параметр hint_data, который дает (кодированную) достоверную информацию о начальных и конечных точках. При этом при реализации API предполагается следующее:

  • добавление &checksum=… в URL, где ‘…’ – это контрольная сумма в hint_data.checksum из предыдущего запроса.
  • добавление &hint=… после каждого &loc=… параметра, если он не меняется по сравнению с предыдущим запросом.
  • в случае, если координаты были изменены, то они не дают никакой «подсказки» для указанной координаты.
  • «подсказки» должны быть размещены непосредственно после параметра &loc=…

Ответ:


{
	"hint_data": {
		"locations": ["1","2"],
		"checksum": 3637997664
	},
	"route_name": ["1","2"],
	"found_alternative": false,
	"via_points": [[55.788872,49.121826],
	[55.843784,48.517399]],
	"route_summary": {
		"end_point": "",
		"start_point": "Университетская улица",
		"total_time": 3128,
		"total_distance": 42557
	},
	"route_geometry": "",
	"status_message": "Found route between points",
	"via_indices": [0, 362],
	"status": 0
}


// информация о «подсказывающих» данных
// местоположение
// контрольная сумма

// массив строк, который хранит наименования маршрутов
// поиск альтернатив
// массив точек, в котором каждая точка представляет собой массив координат: [lat, lon]

// общие сведения о маршруте
// конечная точка
// начальная точка
// общее время пути в секундах
// общая длина в метрах

// геометрия маршрута
// сообщение о статусе (находит маршрут между точками или нет)
// целочисленный массив, который содержит положение начальных и конечных путевых точек
// статус: 0 – успешное выполнение запроса, 207 – нет маршрута

Таблица расстояний по дорожной сети

Запрос по таблицам расстояний аналогичен запросу по маршруту. Схема запроса по таблице расстояний выглядит следующим образом:

GET/table?loc=lat1,lon1&loc=lat2,lon2&…loc=latX,lonX

Структура запроса:


GET/table?loc=52.554070,13.160621&loc=52.431272,13.720654&loc=52.554070,13.720654&loc=52.554070, 13.160621&z=14

lat: широта

lon: долгота

Ответ:


{
    "distance_table": [
        [0, 26084, 22942, 26989],
        [26319, 0, 30810, 19607],
        [22782, 30482, 0, 37495],
        [27376, 19415, 37693, 0]
    ]
}

Параметры

В запрос может быть добавлен ряд дополнительных параметров:

Название параметров Описание параметров
&z={0,…,18} Определяет уровень масштабирования и упрощает геометрию маршрута (то есть на сколько точной будет возвращаемая геометрия маршрута).
output={json, gpx} Форматирует выходные данные как JSON или GPX.
&jsonp=_function_ Форматирует выходные данные как JSONP, обернутые функцией.
&instructions={true, false} Возвращает инструкции для каждого маршрута в виде массива.

  • 0 – направление пути
  • 1 – название маршрута (строка)
  • 2 – длина в метрах (целое число)
  • 3 – положение
  • 4 – время в секундах
  • 5 – длина в метрах (строка)
  • 6 – аббревиатура направления (N – север, S – юг, E – восток, W — запад)
  • 7 – азимут
&alt={true, false} Возвращает альтернативный маршрут при его наличии.

Automap — rest — events

GET /events/last

Структура запроса:


GET  /events/last?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
		"id": 29041304,
		"dataFrom": 1389361046000,
		"dataTill": 1389361188000,
		"info": " ",
		"data": "6547",
		"gaugeInfo": null,
		"gaugeId": null,
		"glonassId": 42117,
		"carId": 111447,
                "eventId": 1,
		"notifiable": true,
		"carNo": "С001СЕ",
		"carName": "CHEVROLET"
},...]

// id события, целое число
// время начала действия события, timestamp
// время конца действия события, timestamp
// информация о событии, строка
// данные, строка
// информация о датчике, строка
// id датчика, целое число
// id ГЛОНАСС, целое число
// id ТС, целое число
// id события, целое число
// посылает оповещения, булевое поле
// номер ТС, строка
// название ТС, строка

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /events/{id}

Структура запроса:


GET /events/29041304?token=bw3ty3h46yth

id: id события

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 29041304,
	"dataFrom": 1389361046000,
	"dataTill": 1389361188000,
	"lat": 55.7876,
	"lon": 49.1406,
	"description": "Остановка (00:02:22)"
}

// id события, целое число
// время начала действия события, timestamp 
// время конца действия события, timestamp 
// широта, число с плавающей точкой
// долгота, число с плавающей точкой
// описание события, строка

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Для подписки на обновление информации о событиях конкретных ТС необходимо отправить WebSocket-сообщение «SET_OBSERVABLE_CARS», содержащее массив glonassID данных ТС. Новые события приходят в сообщении вебсокета с заголовком EVENT_UPDATES.

Структура запроса:

Формат: json

{
	"command": "SET_OBSERVABLE_CARS",
	"data": [3333,107285,107305,107328]
}

// заголовок сообщения, строка
// glonassId ТС, на которые подписываемся

Ответ:

Формат: json

{
	"command": "EVENT_UPDATES",
	"data": [
		{
			"carId": 1869,
			"carName": "ПАЗ-115",
			"carNo": "ВН115 16 RUS",
			"dataFrom": 1390224122000,
			"dataTill": 1390226705000,
			"eventId": 1,
			"gaugeInfo": null,
			"glonassId": 223789,
			"id": 44672821,
			"info": ""
		}
	]
}

// заголовок сообщения, строка


// id ТС, целое число	
// название ТС, строка
// номер ТС, строка
// начало действия события, timestamp 
// конец действия события, timestamp 
// тип события(см. ниже), целое число
// информация о датчике, строка
// ГЛОНАСС id, целое число
// id события, целое число
// если событие датчика, то тип датчика, строка

GET /events/types

Структура запроса:


GET  /events/types?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Формат: json

[{
	"id": 1,
	"name": "parking",
	"defaultMessage": "ТС car.carInfo.carNo остановилось в date",
	"title": "Остановка",
	"iconList": "/assets/images/icons/parking.png",
	"iconMap": "/assets/images/markers/parking.png",
	"view": true,
	"isModul": false,
	"notifiable": true
},...]

// id типа события, целое число
// название события, строка
// сообщение по умолчанию, строка
// заголовок, строка
// иконка списка, строка
// иконка карты, строка
// является видимым, булевое поле
// является модулем, булевое поле
// посылает оповещения, булевое поле

Типы событий:

1 — остановка

2 — потеря сигнала

3 — поворот

4 — поломка оборудования

5 — смена скоростного режима

6 — вход в геозону

7 — выход из геозоны

8 — событие цифрового датчика (если тип датчика 32, то событие 8 — это зажигание)

9 — событие аналогового датчика

10 — заправка топлива

11 — слив топлива

12 — зажигание сработало без назначенного водителя

13 — прибыл в контрольную точку

14 — прибыл к месту заявки

15 — зажигание

16 — выход на маршрут

17 — уход с маршрута

18 — задание назначено

19 — задание выполнено

20 — задание просрочено

21 — задание отменено водителем

22 — задание принято водителем

23 — задание отменено диспетчером

24 — ТС ушло с маршрута

25 — долгая остановка ТС на маршруте

Automap — rest — log — app

GET /log/app

Структура запроса:


GET /log/app?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации


GET /log/app?level=3

message: поиск логов по сообщению

logger: поиск логов по источнику логов приложения

thread: поиск логов по потокам логов приложения

level: получение списка логов по id уровня ошибки

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: "52bd1f69e4b0f5cc9d5de9b3",
		time: 1388126057286,
		message: "refresh inmemory car storage at Fri Dec 27",
		level: "NOTICE",
		logger: "application",
		thread: "application-akka.actor.default-d-11334",
	}
]


// массив логов

// id лога
// время
// сообщение
// уровень
// источник логов приложения
// поток логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/count

Структура запроса:


GET /log/app/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


4303


// количество логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/loggers

Структура запроса:


GET /log/app/loggers?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		value: "application"
	}
]


// массив источников логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/loggers/count

Структура запроса:


GET /log/app/loggers/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


8


// количество источников логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/threads

Структура запроса:


GET /log/app/threads?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		value: "application-akka.actor.default-dispatcher-15756"
	}
]


// массив потоков логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/threads/count

Структура запроса:


GET /log/app/threads/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


145


// количество потоков логов приложения

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/app/levels

Структура запроса:


GET /log/app/levels?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 1,
		type: "ALERT"
	}
]


// массив уровней ошибок

// id уровня ошибки
// тип уровня ошибки

Статус: 404 — Объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — log — daemon

GET /log/daemon

Структура запроса:


GET /log/daemon?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации


GET /log/daemon?level=3

level: получение списка логов по id уровня ошибки

objectType: поиск логов по типу источника данных

protocolName: поиск логов по названию протокола

protocolId: поиск логов по ID протокола

glonassId: поиск логов по glonass ID

message: поиск логов по сообщению

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: "5282255f5cc7d2819e1b9706",
		time: 1384260959484,
		level: "ERROR",
		objectId: 0,
		objectType: "pgdatabase",
		protocolId: 0,
		glonassId: 0,
		message: " db: database connection error"
	}
]


// Массив логов демона

// id лога
// время лога
// уровень лога
// id источника данных для лога
// тип источника данных для лога
// id протокола
// glonass ID
// сообщение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/daemon/count

Структура запроса:


GET /log/daemon/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


144


// Количество логов демона

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /log/daemon/levels

Структура запроса:


GET /log/daemon/levels?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		id: 1,
		type: "EMERGENCY"
	}
]


// Список уровней ошибок

// id уровня
// тип уровня

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — icons(before delete /all)

GET /cars/icons

Структура запроса:


GET /cars/icons?token=bw3ty3h46yth

token: ключ доступа

Параметры фильтрации:


GET /cars/icons?name=iconName&rotate=true

name: получение списка иконок по названию

rotate: получение списка иконок, у которых состояние поворота соответствует заданному булевому значению

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
		id: 1,
		name: "Автобус 3D",
		width: 384,
		height: 48,
		initialRotation: 0,
		rotate: true,
		type: 1,
		src0: "/cars/icons/222/0",
		src1: "/cars/icons/222/1",
		src2: "/cars/icons/222/2"
},...]

// id иконки, целое число
// название иконки, строка
// ширина, целое число
// высота, целое число
// первоначальный поворот, целое число
// вращается, булевое поле
// тип иконки, целое число
// иконка неактивного ТС, строка
// иконка активного ТС, строка
// иконка выделенного ТС, строка

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/icons/all

Структура запроса:


GET /cars/icons/all?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
		id: 222,
		name: "Автобус 3D",
		width: 384,
		height: 48,
		initialRotation: 0,
		rotate: true,
		type: 1,
		src0: "/cars/icons/222/0",
		src1: "/cars/icons/222/1",
		src2: "/cars/icons/222/2"
},...]

// id иконки, целое число
// название иконки, строка
// ширина, целое число
// высота, целое число
// первоначальный поворот, целое число
// вращается, булевое поле
// тип иконки, целое число
// иконка неактивного ТС, строка
// иконка активного ТС, строка
// иконка выделенного ТС, строка

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/icons/{id}/{type}

Структура запроса:


GET /cars/icons/24/1?token=bw3ty3h46yth

id: id иконки

type: тип иконки

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

POST /cars/icons

Структура запроса:


POST /cars/icons?token=bw3ty3h46yth

Пример запроса:

{
	"initialRotation": 25,
	"name": "Новая иконка",
	"rotate": true,
	"type": 0,
	"src0": "p19qst4j73p1a187q18np13tkqksn.jpg",
	"src1": "p19qst4lmt1iau1g0212lf1r3icchp.jpg",
	"src2": "p19qst4np91s0hcg71aoeoe7174gr.jpg"
}

// угол поворота, целое число
// название иконки, строка
// вращается, булевое поле
// тип, целое число
// иконка в неактивном состоянии, строка
// иконка в активном состоянии, строка
// иконка в выделенном состоянии, строка

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 185,
	"name": "Новая иконка",
	"width": 30,
	"height": 22,
	"initialRotation": 25,
	"rotate": true,
	"type": 0,
	"src0": "/cars/icons/185/0",
	"src1": "/cars/icons/185/1",
	"src2": "/cars/icons/185/2"
}

// id иконки, целое число
// название иконки, строка
// ширина, целое число
// высота, целое число
// угол поворота, целое число
// вращается, булевое поле
// тип иконки, целое число
// иконка в неактивном состоянии, строка
// иконка в активном состоянии, строка
// иконка в выделенном состоянии, строка

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

PUT /cars/icons/{id}

Структура запроса:


PUT /cars/icons/185?token=bw3ty3h46yth

id: id иконки

token: ключ доступа

Формат: json

{
	"id": 185,
	"height": 22,
	"initialRotation": 15,
	"name": "Новое название",
	"rotate": false,
	"src0": null,
	"src1": null,
	"src2": null,
	"type": 0,
	"width": 30
}

// id иконки, целое число
// высота, целое число
// угол поворота, целое число
// название иконки, строка
// вращается, булевое поле
// иконка в неактивном состоянии, строка
// иконка в активном состоянии, строка
// иконка в выделенном состоянии, строка
// тип иконки, целое число
// ширина иконки, целое число

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 185,
	"name": "Новое название",
	"width": 30,
	"height": 22,
	"initialRotation": 15,
	"rotate": false,
	"type": 0,
	"src0": "/cars/icons/185/0",
	"src1": "/cars/icons/185/1",
	"src2": "/cars/icons/185/2"
}

// id иконки, целое число
// название иконки, строка
// ширина, целое число
// высота, целое число
// угол поворота, целое число
// вращается, булевое поле
// тип, целое число
// src иконки в неактивном состоянии, строка
// src иконки в активном состоянии, строка
// src иконки в выделенном состоянии, строка

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

DELETE /cars/icons/{id}

Структура запроса:


DELETE /cars/icons/24?token=bw3ty3h46yth

id: id иконки

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/icons/count

Структура запроса:


GET /cars/icons/count?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: text


24


// Количество иконок

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/icons/{id}/{status}/preview/

Структура запроса:


GET /cars/icons/31/0/preview?token=bw3ty3h46yth

id: id иконки

status: 0 — неактивное ТС; 1 — активное ТС; 2 — выделенное ТС

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: image/png

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /cars/icons/{src}/{type}/preview

Структура запроса:


GET /cars/icons/p19qst4j73p1a187q18np13tkqksn.jpg/0/preview?token=bw3ty3h46yth

src: src загруженной иконки

type: 0 — сжатая иконка; 1 — первая из восьми частей, в несжатом виде

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: image/png

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — users( before delete /all)

Доступно только для пользователей с правами администратора

GET /users

Структура запроса:


GET /users?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

[{
	"id": 1,
	"login": "user_login",
	"fio": "ФИО пользователя",
	"email": "user@user.com",
	"phone": "5699654",
	"monitor": false,
	"visible": false,
	"enabled": true,
	"groupId": 4,
	"organizationId": 10
},...]

// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// электронная почта, строка
// телефон, строка

// видим на старте, булевое поле

// id группы, целое число
// id организации, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

POST /users

Структура запроса:


POST /users?token=mbs90lon2a8

token: ключ доступа

Пример запроса:

Формат: json

{
	"email": "user@user.com",
	"fio": "ФИО пользователя",
	"groupId": "103",
	"login": "newuser",
	"organizationId": "122",
	"password": "newuser",
	"phone": "+79655141423",
	"visible": true
}

// электронная почта, строка
// имя пользователя, строка
// id группы, целое число
// логин, строка
// id организации, целое число
// пароль, строка
// телефон, строка
// видим на старте, булевое поле

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	"id": 264,
	"login": "newuser",
	"fio": "ФИО пользователя",
	"email": "user@user.com",
	"phone": "+79655141423",
	"monitor": false,
	"visible": true,
	"enabled": true,
	"groupId": 103,
	"organizationId": 122
}



// id пользователя, целое число
// логин, строка
// имя пользователя, строка
// электронная почта, строка
// телефон, строка

// видим на старте, булевое поле

// id группы, целое число
// id организации, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

PUT /users/{id}

Структура запроса:


PUT /users/24?token=mbs90lon2a8

id: id пользователя

token: ключ доступа

Пример запроса:

Формат: json

{
	"email": "user@user.com",
	"enabled": true,
	"fio": "ФИО пользователя",
	"groupId": "133",
	"id": 24,
	"login": "newuser",
	"monitor": false,
	"organizationId": "37",
	"password": "newuser",
	"phone": "+79655141423",
	"visible": true
}

// электронная почта, строка
// видим на старте, булевое поле
// имя пользователя, строка
// id группы, целое число
// id пользователя, целое число
// логин, строка

// id организации, целое число
// пароль, строка
// телефон, строка
// видим на старте, булевое поле

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 24,
	"login": "newuser",
	"fio": "ФИО пользователя",
	"email": "user@user.com",
	"phone": "+79655141423",
	"monitor": false,
	"visible": true,
	"enabled": true,
	"groupId": 1383,
	"organizationId": 3791
}

// 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/current

Структура запроса:


GET /users/current?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json

{
	"id": 1,
	"login": "admin",
	"fio": "admin",
	"email": null,
	"organization": {
		"id": 1,
		"name": "ГрадоСервис ООО",
		"mapExtent": "57.008, 56.638, 49.262, 48.578",
		"mapRoadProvider": "MAPKZN",
		"mapAerialProvider": "MICROSOFT_AERIAL",
		"toDelete": false,
		"info": {
			"orgId": 1,
			"address": "казань",
			"phone": "",
			"inn": "",
			"kpp": "",
			"email": "",
			"homepage": ""
		}
	},
	"right": {
		"id": 1,
		"name": "Градосервис",
		"wheel": true,
		"admin": true,
		"organization": {
			"id": 1,
			"name": "ГрадоСервис ООО",
			"mapExtent": "57.008, 56.638, 49.262, 48.578",
			"mapRoadProvider": "MAPKZN",
			"mapAerialProvider": "MICROSOFT_AERIAL",
			"toDelete": false,
			"info": {
				"orgId": 1,
				"address": "казань",
				"phone": "",
				"inn": "",
				"kpp": "",
				"email": "",
				"homepage": ""
			}
		},
		"usersCount": 5
	},
	"phone": "",
	"monitor": false,
	"visible": false,
	"enabled": true,
	"groupId": 1,
	"organizationId": 1,
	"currentOrgId": 0
}

// id пользователя, целое число
// логин пользователя, строка
// имя пользователя, строка
// электронная почта, строка
// информация об организации
// id организации, целое число
// название организации, строка
// положение на карте, строка
// провайдер, строка
// провайдер, строка

// информация о пользователе
// id организации, целое число
// адрес организации, строка
// телефон, строка
// ИНН, целое число
// КПП, целое число
// электронный адрес, строка
// веб-страница, строка


// права пользователя
// id права, целое число
// название права, строка
// всевидящий пользователь, булевое поле
// администратор, булевое поле
// информация об организации
// id организации, целое число
// название, строка
// положение на карте, строка
// провайдер, строка
// провайдер, строка
// удаление, булевое поле
// дополнительная информация
// id организации, целое число
// адрес, строка
// телефон, строка
// ИНН, целое число
// КПП, целое число
// электронная почта, строка
// веб-страница, строка


// число пользователей, целое число

// телефон пользователя, строка

// видим на старте, булевое поле

// id группы, целое число
// id организации, целое число
// id текущей организации, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

GET /users/count

Структура запроса:


GET /users/count?token=mbs90lon2a8

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


233


// количество пользователей, целое число

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Automap — rest — drivers (before delete /all)

GET /drivers

Структура запроса:


GET /drivers?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		"id": 982,
		"fio": "+",
		"phone": "",
		"notes": "",
		"hasPhoto": false,
		"orgId": 1162
	}
]


// массив объектов водителей

// id водителя
// фио
// телефон
// примечание
// у водителя имеется фото
// id организации

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /drivers/all

Структура запроса:


GET /drivers/all?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


[
	{
		"id": 982,
		"fio": "+",
		"phone": "",
		"notes": "",
		"hasPhoto": false,
		"orgId": 1162
	}
]


// массив объектов водителей

// id водителя
// фио
// телефон
// примечание
// у водителя имеется фото
// id организации


Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /drivers/{id}

Структура запроса:


GET /drivers/982?token=bw3ty3h46yth

id: id водителя

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	"id": 982,
	"fio": "+",
	"phone": "",
	"notes": "",
	"wire": null,
	"extId": null,
	"hasPhoto": false,
	"orgId": 1162
}



// id водителя
// фио
// телефон
// примечание
// идентификатор ключа

// у водителя имеется фото
// id организации

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

PUT /drivers/{id}

Структура запроса:


PUT /drivers/123?token=bw3ty3h46yth

id: id водителя ТС

token: ключ доступа

Формат: json


{
	"fio": "ФИО",
	"notes": "Опытный водитель ",
	"orgId": 1,
	"phone": "12345678"
}



// фио
// примечание
// id организации
// телефон

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	"fio": "ФИО",
	"hasPhoto": false,
	"id": 123,
	"notes": "Опытный водитель ",
	"orgId": 1,
	"phone": "12345678"
}



// фио
// наличие фото
// id водителя
// примечание
// id организации
// телефон

Статус: 400 ошибка в запросе

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

POST /drivers

Структура запроса:


POST /drivers?token=bw3ty3h46yth

token: ключ доступа

Формат: json


{
	"fio": "ФИО",
	"notes": "Отличный водитель",
	"orgId": 1,
	"phone": "12345678"
}



// фио
// примечание
// id организации
// телефон

Ответ:

Статус: 200 — успешное выполнение

Формат: json


{
	"fio": "ФИО",
	"hasPhoto": false,
	"id": 1101,
	"notes": "Отличный водитель",
	"orgId": 1,
	"phone": "12345678"
}



// фио
// наличие фото
// id водителя
// примечание
// id организации
// телефон

Статус: 400 ошибка в запросе

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

Доступно только для пользователей с правами администратора

DELETE /drivers/{id}

Структура запроса:


DELETE /drivers/1125?token=bw3ty3h46yth

id: id водителя ТС

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /drivers.xlsx

Структура запроса:


GET /drivers.xlsx?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: application/vnd.ms-excel

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки

GET /drivers/{id}/photo

Структура запроса:


GET /drivers/1123/photo?token=bw3ty3h46yth

token: ключ доступа

Ответ:

Статус: 200 — успешное выполнение

Формат: image/png

Статус: 404 — объект не найден

Формат: text/plain

Содержит описание ошибки

Статус: 500 — ошибка на сервере

Формат: text/plain

Содержит описание ошибки