Запрос:
URL:
Запрос списка всех датчиков:
GET https://api.url/v2.1/sensors
Запрос датчика по id
GET https://api.url/v2.1/sensors/<sensor_id>
Доп. Параметры запроса:
Поддерживаются стандартные параметры запроса page, sort, filter, fields.
Доп. Заголовки:
If-Modified-Since - Если ранее уже запрашивался полный список датчиков, то при обновлении следует указывать заголовок If-Modified-Since с датой полученной заголовка ответа Last-Modified
Accept - для указания формата ответа. Должен быть "application/vnd.api+json", для совместимости принимается также "application/json".
Authorization - для передачи токена. Передается в формате: Bearer <access_token>.
Ответ:
Ответ присылается в формате JSON API.
Поле | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
links | Поле links содержит ссылку на текущий ресурс (self). | ||||||||||||
meta | Содержит total_count - количество сенсоров в системе | ||||||||||||
data | Сожерит массив объектов датчиков в формате JSON API. Каждый объект датчиков содержит
|
Описание атрибутов датчиков:
Поле | Тип | Nullable | Описание |
---|---|---|---|
SensorName | string | false | Название датчиква |
Destination | int | false | Назначения (назначения датчиков приведены ниже) |
SensorType | int | false | Тип датчика (типы датчиков приведены ниже) |
Типы датчиков:
Типы | Описание |
---|---|
0 | Дискретный датчик |
1 | Аналоговый датчик |
2 | Управляемый датчик |
3 | Счетчик |
4 | особый, специфичный для протокола. |
Назначения датчиков:
Назначение используется для группировки датчиков по роли (для определения что они передают).
Если клиент получает датчик с не известным назначением, то он должен считать датчиком общего назначения.
Назначение | Описание |
---|---|
0 | Датчик общего назначения |
1 | Зажигание (датчики с этим назначением используются для определения состояния зажигания.) |
2 | Тревога (тревожная кнопка/взлом) |
4 | Датчик работы исполнительного механизма (включение/выключение исполнительного механизма (счетка, поливалка, ...)) |
100 | Топливо (бак) (датчики уровня топлива) |
110 | FMS датчик расхода топлива (суммарный расход топлива) |
120 | Одометр |
300 | Контрольный датчик |
400 | Резкое ускорение |
401 | Резкое торможение |
500 | идентификатор ключа водителя |
600 | Моточасы |
700 | Ремень безопасности |
800 | Пассажиропоток |
1013 | Температура, °C |
1100 | Скоринговый балл |
1200 | Резкий левый поворот |
1201 | Резкий правый поворот |
1300 | Ближний свет фар |
Коды ответов:
200 ОК - Сервер обработал запрос. В теле ответа содержится список датчиков. Также будет передан заголовок Last-Modified.
304 Not Modified - Сервер обработал запрос. Изменения не найдены.
401 Unauthorized - не передан заголовок Authorization, либо токен невалидный или окончилась валидация.
403 Forbidden - нет прав на просмотр (id пользователя не соответствует токену ).
404 Not Found - запрошенный датчик не найдена .
400 Bad Request - Переданы не поддерживаемые параметры либо сервер не понял запрос (описание ошибки в теле ответа).
Пример:
Запрос списка всех датчиков:
GET https://api.url/v2.1/sensors HTTP/1.1 Accept: application/vnd.api+json HTTP/1.1 200 OK Content-Type: application/vnd.api+json Allow: GET Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT { "links": { "self": "https://api.url/v2.1/sensors", }, "meta": { "total_count": 130 }, "data": [ { "id": "1", "type": "sensor", "attributes": { "SensorName": "Зажигание", "Destination": 1, "SensorType": 0 } }, { "id": "4", "type": "sensor", "attributes": { "SensorName": "Температура", "Destination": 0, "SensorType": 1 } }, ... more sensors ... ] }
Запрос датчика по id:
GET https://api.url/v2.1/sensors/1 HTTP/1.1 Accept: application/vnd.api+json HTTP/1.1 200 OK Content-Type: application/vnd.api+json Allow: GET Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT { "links": { "self": "https://api.url/v2.1/sensors/1", }, "data": { "id": "1", "type": "sensor", "attributes": { "SensorName": "Зажигание", "Destination": 1, "SensorType": 0 } } }