Вступление
Программный интерфейс API предназначен для взаимодействия облачной платформы «Вавиот» со сторонними системами верхнего уровня с целью доступа к данным, содержащимся в базе данных, прямому доступу к устройствам сети NB-Fi , конфигурирования и контроля функционирования.
API представляет собой набор программных методов, исполняющихся посредством HTTP GET либо POST запросов.
Сервер, предоставляющий API: https://api.waviot.ru
Авторизация
Все методы API предполагают предварительную авторизацию клиента.
Сервер, выполняющий авторизацию и регистрацию новых пользователей: https://auth.waviot.ru
- Авторизация
Процедура авторизации предполагает передачу логина и пароля по защищенному каналу и получение в ответ 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= |
- Срок действия JWT-токена
Токен, выданный при авторизации, имеет ограниченный срок действия, определяемый сервером авторизации.
После окончания данного периода времени необходимо выполнить процедуру авторизации повторно.
В случае, если токен более недействителен, все запросы, требующие аутентификацию, возвращают ошибку 403 Token was expired.
- Регистрация нового пользователя.
Запрос:
width="317">account_id=&lastName=&firstName=&birthday=&mail=akukuev%40waviot&password=&repPassword=&confirmPassword=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C<>
Тип запроса | URL | BODY | Обязательные поля в заголовке |
POST | https://auth.waviot.ru/?action=user | 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://kb.waviot.ru/index.php?View=entry&EntryID=54try/54/
Методы модуля gateway
Модуль gateway выполняет функции NB-Fi базовой станции. Данный HTTP API-интерфейс предоставляет доступ к модулю gateway для администрирования и мониторинга базовой станции.
Описание методов модуля gateway доступно по ссылке https://kb.waviot.ru/index.php?View=entry&EntryID=52
Методы модуля telecom
Модуль telecom выполняет функции NB-Fi телеком-cервера. Данный HTTP API-интерфейс позволяет получать, отправлять NB-Fi пакеты данных, конфигурировать режимы работы устройств, базовых станций, выполнять мониторинг работы сети и загружать лицензии на новые устройства.
Описание методов модуля telecom доступно по ссылке https://kb.waviot.ru/index.php?View=entry&EntryID=53
Методы модуля driver
Модуль driver реализует поддержку доступа к данным всех приборов, находящихся в сети "Вавиот". В настоящий момент данный модуль поддерживает электросчетчики Фобос последнего поколения и и счетчики воды АКВА2.
Описание методов для получения показаний и событий приборов, а также их конфигурирования доступно по ссылке https://kb.waviot.ru/index.php?View=entry&EntryID=66
Методы модуля lk
Модуль lk представляет из себя API-интерфейс для доступа к приложению "Личный кабинет". Данное приложение доступно по ссылке https://lk.waviot.ru
Описание методов доступно по ссылке https://lk.waviot.ru/api/