Смартроад RESTful API 2.0
Система предоставляет разработчикам RESTful API для взаимодействия с внешними системами.
В общем виде запрос внешней системы для получения вида сведений посредством унифицированных методов HTTP выглядит следующим образом:
<url_smartroad>/api/<version>/<запрос>?login=<user_login>&password=<user_password>
Перечень всех запросов API
| Запрос | HTTP метод | Описание метода |
|---|---|---|
| login | POST | Получение JWT токена |
| refresh | POST | Обновление токена по истечению срока его действия |
| events | GET | Получение событий |
| status | GET | Информации о состоянии оборудования |
| stat | GET | Данные статистики |
| sensors | GET | Информация о детекторах |
| rate | GET | Оценка транспортного потока по витрине статистики |
| jam | GET | Оценка заторовой ситуации транспортного потока |
Перечень параметров запроса
| Параметр | Описание |
|---|---|
| url_smartroad | Адрес веб-сервера, к которому идёт обращение. |
| version | Версия API. Может быть указан как номер протокола (2.0), так и либо иной эндпоинт (например, integration) на усмотрение организации, использующей API. |
| запрос | Метод API, к которому идёт обращение. |
| login | Логин пользователя в Системе. |
| password | Пароль пользователя. |
| username | Логин пользователя, используемый при авторизации с помощью метода login. |
| Почта пользователя. | |
| sensorId | Уникальный идентификатор искомого детектора. |
| project_id | Уникальный идентификатор проекта, в котором находится искомый детектор. |
| sensorName | Имя искомого детектора. DEPRECATED – нежелательный параметр. |
| startDate / from | Начало временного периода. |
| endDate / to | Конец временного периода. |
Запрос является обязательными параметрами
login и password так же будут обязательными параметрами при авторизации без использования JWT токена
Обработка ошибок
Система использует коды состояния HTTP для указания статуса вызовов API. Код состояния HTTP возвращается в заголовке ответа.
Список кодов, которые пользователь может получить при отправке запросов Системе:
200: OK400: Bad Request401: Unauthorized403: Forbidden404: Not Found429: Too many requests500: Internal Server Error
Список общих ошибок для всех запросов:
| Код ошибки | Описание/сообщение | Способ получения |
|---|---|---|
| 400 | API not found or disabled | Ошибки/опечатки в написании названия запроса, отправка несуществующего запроса |
| 429 | Too many requests | Между запросами прошло меньше определенного времени. Клиентское приложение было отрегулировано, и ему не следует пытаться повторить запрос, пока не пройдет определенное время |
| 500 | Internal server error | При обработке запроса возникла внутренняя ошибка сервера. На сервере произошла внутренняя непредвиденная ошибка или аварийный отказ |
Взаимодействие с внешними системами
В Системе реализована передача данных во внешние системы через RESTful API в виде JSON сообщений по запросу внешней системы.

Схема взаимодействия с внешними системами.
Сбор, обработка и отправка данных производится по следующему алгоритму:
- ДТ собирает данные транспортного потока;
- Адаптер формирует пакеты данных для передачи в БД;
- Веб-сервер получает запрос на предоставление информации от внешней системы;
- Веб-сервер обрабатывает запрос, с помощью PostgREST запрашивает и принимает требуемые данные из БД;
- Веб-сервер формирует и отправляет ответ на запрос.
Ограничения
ООО "Сорб Инжиниринг" оставляет за собой право добавлять поля без предварительного уведомления с сохранением обратной совместимости. Пожалуйста, убедитесь, что ваше программное обеспечение способно обрабатывать информацию при наличии дополнительных полей, которые могут быть добавлены в будущем, без необходимости внесения изменений в код.