API облачной платформы Вавиот

Описание API облачной платформы «Вавиот».

Вступление

Программный интерфейс API предназначен для взаимодействия облачной платформы «Вавиот» со сторонними системами верхнего уровня с целью доступа к данным, содержащимся в базе данных, прямому доступу к устройствам сети NB-Fi , конфигурирования и контроля функционирования.

API представляет собой набор программных методов, исполняющихся посредством HTTP GET либо POST запросов.

Сервер, предоставляющий API:    https://api.waviot.ru

Авторизация

Все методы API предполагают предварительную авторизацию клиента.

Сервер, выполняющий авторизацию и регистрацию новых пользователей:    https://auth.waviot.ru

  1. Авторизация

Процедура авторизации предполагает передачу логина и пароля по защищенному каналу и получение в ответ JWT-токена.

Токен возвращается в теле ответа на запрос авторизации а также сохраняется в разделе cookie браузера. 

Наличие данного токена контролируется всеми методами сервиса api.waviot.ru и в случае его отсутствия или завершения срока годности,  все методы возвращают ошибку 403 с указанием в теле ответа причину ошибки.

Запрос для авторизации:

Тип запроса

URL

BODY

Обязательные поля в заголовке

POST

https://auth.waviot.ru/?action=user-login

https://api.waviot.ru/auth

{"login":"akukuev@waviot.ru","password":"12345678"}

Content-type:

application/json

user-agent:

{любое значение, но должно присутствовать, в свободном формате}

x-requested-with: XMLHttpRequest

Ответ:

BODY

{

 "modifyTS": 1551692357,

"sc": "ac2600509826a4fd967eb6d58b1b136a",

"rt": "0035b3959688a2029ec98d85771e80d6",

"WAVIOT_JWT": "eyJhbGciOiJtZDUiLCJ0eXAiOiJXQVZJT1RfSldUIn0=.eyJpc3MiOiJhdXRoLndhdmlvdC5ydSIsImF1ZCI6IndhdmlvdC5ydSIsImV4cCI6MTU1MTY5MjY1OCwidXNlck5hbWUiOiJBTW9saW4iLCJ1c2VyUm9sZSI6ImFkbWluIiwidXNlcl9pZCI6IjQxOCIsImFwaUtleSI6InU4N2lqdXF1M2x1ZWNlZHczY281aXdwcWs1N2IxY2M3NmN1YnM5cndqbzFjNTI2dml2b3N0aG1oOHJkeDdzcDYifQ==.OWRhMmU0ODgyYjFjOWNiNTc0ZDMyZGY2OTE4MjkwMzM="

"sessid":"TY5MjY1OCwidXNlck5hbW"

 }

              2. Использование JWT-токена

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

authorization: bearer WAVIOT_JWT 

Пример использования:

Запрос:

Тип запроса

URL

Обязательные поля в заголовке

GET

https://api.waviot.ru//telecom/api/stats

authorization: bearer eyJhbGciOiJtZDUiLCJ0eXAiOiJXQVZJT1RfSldUIn0=.eyJpc3MiOiJhdXRoLndhdmlvdC5ydSIsImF1ZCI6IndhdmlvdC5ydSIsImV4cCI6MTU0NDQzMDQzOSwidXNlck5hbWUiOiJBTW9saW4iLCJ1c2VyUm9sZSI6ImFkbWluIiwidXNlcl9pZCI6IjQxOCIsImFwaUtleSI6InU4N2lqdXF1M2x1ZWNlZHczY281aXdwcWs1N2IxY2M3NmN1YnM5cndqbzFjNTI2dml2b3N0aG1oOHJkeDdzcDYifQ==.Y2M5MmFkZDkzOWZiMjc2NDZjNTYyZjRjNTgxOTcxOTg=

  1. Срок действия JWT-токена

Токен, выданный при авторизации, имеет ограниченный срок действия, определяемый сервером авторизации.

После окончания данного периода времени необходимо выполнить процедуру авторизации повторно.

В случае, если токен более недействителен, все запросы, требующие аутентификацию, возвращают ошибку 307 Token was expired. и выполняется переадресация на страницу авторизации.

  1. Регистрация нового пользователя.

Запрос:

Тип запроса

URL

BODY

Обязательные поля в заголовке

POST

https://auth.waviot.ru/?action=user lastName=&firstName=&mail=akukuev%40waviot&password=&repPassword=&confirmPassword=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C

content-type:

application/x-www-form-urlencoded

user-agent:

{  указать oc и версию устройства + версия по + id сессии }

HTTP_X_REQUESTED_WITH:

xmlhttprequest

Ответ:

BODY

{

"modifyTS": 1551692357,

"sc": "ac2600509826a4fd967eb6d58b1b136a",

"rt": "0035b3959688a2029ec98d85771e80d6",

"WAVIOT_JWT": "eyJhbGciOiJtZDUiLCJ0eXAiOiJXQVZJT1RfSldUIn0=.eyJpc3MiOiJhdXRoLndhdmlvdC5ydSIsImF1ZCI6IndhdmlvdC5ydSIsImV4cCI6MTU1MTY5MjY1OCwidXNlck5hbWUiOiJBTW9saW4iLCJ1c2VyUm9sZSI6ImFkbWluIiwidXNlcl9pZCI6IjQxOCIsImFwaUtleSI6InU4N2lqdXF1M2x1ZWNlZHczY281aXdwcWs1N2IxY2M3NmN1YnM5cndqbzFjNTI2dml2b3N0aG1oOHJkeDdzcDYifQ==.OWRhMmU0ODgyYjFjOWNiNTc0ZDMyZGY2OTE4MjkwMzM="

"sessid":"TY5MjY1OCwidXNlck5hbW"

}

Доступные методы

Методы модуля driver_electro5

Модуль driver_electro5 реализует поддержку приборов учета электроэнергии Вавиот Фобос.

Описание методов для получения показаний и событий приборов учета, а также их конфигурирования доступно по ссылке https://waviot.makekb.com/entry/54/ 

Методы модуля gateway

Модуль gateway выполняет функции NB-Fi базовой станции. Данный HTTP API-интерфейс предоставляет доступ к  модулю gateway для администрирования и мониторинга базовой станции.

Описание методов модуля gateway доступно по ссылке https://waviot.makekb.com/entry/52/

Методы модуля telecom

Модуль telecom выполняет функции NB-Fi телеком-cервера. Данный HTTP API-интерфейс позволяет получать, отправлять NB-Fi пакеты данных, конфигурировать режимы работы устройств, базовых станций, выполнять мониторинг работы сети и загружать лицензии на новые устройства.

Описание методов модуля telecom  доступно по ссылке https://waviot.makekb.com/entry/53

Методы модуля driver

Модуль driver реализует поддержку доступа к данным всех приборов, находящихся в сети "Вавиот". В настоящий момент данный модуль поддерживает электросчетчики Фобос последнего поколения и и счетчики воды АКВА2.

Описание методов для получения показаний и событий приборов, а также их конфигурирования доступно по ссылке https://waviot.makekb.com/entry/66/ 

Методы модуля lk

Модуль lk  представляет из себя API-интерфейс для доступа к приложению "Личный кабинет". Данное приложение доступно по ссылке https://lk.waviot.ru

Описание методов доступно по ссылке https://lk.waviot.ru/api/



ID статьи: 63
Последнее обновление: 07 Jun, 2021
Ревизия: 27
Техническая документация -> Описание API -> API облачной платформы Вавиот
https://kb.waviot.ru/entry/63/