Центр управления устройствами REST API
Данное исключение возращается когда запись не найдена или страницы не существует
{
"status": false,
"data": {
"message": "Not Found",
"url": "/api/device-config/delete",
"code": 404
}
}
Данное исключение возращается когда в заросе не переданы нужные данные
{
"status": false,
"data": {
"message": "Bad Request",
"url": "/api/device-config/delete",
"code": 400
}
}
Данное исключение возращается когда был использован неразрешенный метод для запроса
{
"status": false,
"data": {
"message": "Method Not Allowed",
"url": "/api/users/login",
"code": 405
}
}
Данное исключение возращается когда пользователь ввел неверные имя пользователя или пароль или неавторизован в системе.
Статус операции
{
"status": false,
"data": {
"message": "You are not authorized to access that location.",
"url": "/api/users/login",
"code": 401
}
}
Операции для входа в систему
Авторизация в системе и получение токена.
Request body
Email вашего аккаунта
Пароль от вашего аккаунта
Examples
{
"email": "test@test.com",
"password": "testpassword"
}
Responses
Ошибка авторизации
Body
Examples
{
"status": false,
"data": {
"message": "Invalid username or password",
"url": "/api/users/login",
"code": 401
}
}
Запрещенный метод
Body
Examples
{
"status": false,
"data": {
"message": "Method Not Allowed",
"url": "/api/users/login",
"code": 405
}
}
Авторизация успешна
Body
POST http://192.168.10.123/api/users/login HTTP/1.1
Content-Type: application/json
{
"email": "test@test.com",
"password": "testpassword"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImV4cCI6MTU1OTY0Mzc4N30.T0P8tFNTfLl61cefPWkP7Puz9bAix4ZtB8_veL40gFY"
}
}
После того как вы авторизовались и получили токен. Во все запросы необходимо добавлять заголовок с данным токеном.
Заголовок: Authorization Значение заголовка: Bearer {TOKEN}
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImV4cCI6MTU1OTcyNDc0Mn0.TVA1Q17gMMc8EmspxuILVJKgEyUfegb_49nuYOmmbD0
Получение списка устройств и списка групп
Authentication
Возвращает список устройств доступных пользователю + фильт/сортировка/пагинация
Request parameters
Количество устройств в выдаче
Номер страницы пагинации
Название поля для сортировки
Служебно название услуги
Направление сортировки
Request body
(Опционально)
(Опционально) идентификатор группы
(Опционально) 0 - не в сети 1 - в сети
(Опционально) Строка поиска, ищет по всем поля
Responses
Body
Идентификатор устройства
Наименование устройства
Тип устройства(железо)
Номер прошивки
Комментарий
Флаг блокировки устройства
IP адрес управления
Имя интерфейса канала агрегации
Количество каналов
IP адрес клиентской точки
IP адрес серверной точки
Сетевая маска
MTU интерфейса
Текущий сервер агрегации(IP адрес)
Текущий VLAN
Идентефикатор группы
Название группы
ID услуги
Служебное название услуги
Текущие параметры пагинации
Количество страниц
Текущая страница
Флаг наличия следующей страницы
Флаг наличия предыдущей страницы
Всего записей
Записей на страницу
Пример без параметров
POST http://192.168.10.123/api/devices/index HTTP/1.1
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true",
"data": [
{
"device_id": 21,
"device_name": "BN014000000057",
"device_type": "Fotel BL-01",
"login": "3935972275337519060",
"firmware_version": "1.40.4",
"comment": "Тестовое устройство",
"blocked": "false",
"ovpn_ip": "192.168.108.25",
"fvpn_ifname": "ftap108_25",
"fvpn_channels": "2",
"fvpn_ip_client": "10.1.1.2",
"fvpn_ip_server": "10.1.1.1",
"fvpn_netmask": "255.255.255.252",
"fvpn_mtu": 1500,
"aggregator": "11.11.11.11",
"vlan": "1515",
"service_id": 10,
"service": "atm",
"group": {
"id": 1,
"name": "Тест"
}
},
{...}
],
"pagination": {
"page_count": 20,
"current_page": 1,
"has_next_page": "true",
"has_prev_page": "false",
"count": 250,
"limit": 25
}
}
пример с параметрами
POST http://192.168.10.123/api/devices/index?limit=5&page=3&sort=device_id&direction=asc HTTP/1.1
Content-Type: application/json
{
"filter": {
"group": 10,
"online": 1,
"query": "тест"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true",
"data": [
{
"device_id": 21,
"device_name": "BN014000000057",
"device_type": "Fotel BL-01",
"login": "3935972275337519060",
"firmware_version": "1.40.4",
"comment": "Тестовое устройство",
"blocked": "false",
"ovpn_ip": "192.168.108.25",
"fvpn_ifname": "ftap108_25",
"fvpn_channels": "2",
"fvpn_ip_client": "10.1.1.2",
"fvpn_ip_server": "10.1.1.1",
"fvpn_netmask": "255.255.255.252",
"fvpn_mtu": 1500,
"aggregator": "11.11.11.11",
"vlan": "1515",
"service_id": 0,
"service": "no_service",
"group": {
"id": 10,
"name": "Тест"
}
},
{...},
...
],
"pagination": {
"page_count": 10,
"current_page": 3,
"has_next_page": true,
"has_prev_page": true,
"count": 50,
"limit": 5
}
}
Authentication
Возвращает список групп доступных пользователю
Responses
Body
Идентефикатор группы
Идентефикатор родительской группы
Название группы
Запрещенный метод
GET http://192.168.10.123/api/devices/groups HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": true,
"data": [
{
"id": 1,
"parent_id": null,
"name": "Тест"
},
{
"id": 2,
"parent_id": 1,
"name": "Тест1"
}
]
}
POST http://192.168.10.123/api/devices/groups HTTP/1.1
HTTP/1.1 405 Method Not Allowed
Content-Type: application/json
{
"status": false,
"data": {
"message": "Method Not Allowed",
"url": "/api/devices/groups",
"code": 405
}
}
В этом разделе представлен API для создания и устравления конфигурацией устройств.
{config_id}
Authentication
Получает список экспортируемой конфигурации
Request parameters
Количество записей в выдаче
Номер страницы пагинации
Название поля для сортировки
идентефикатор экспорта
дата начала экспорта
дата окончания
текущий статус
что экпортируется
идентефикатор мастер устройства
идентефикатор пользователя(создатель)
идентефикатор пользователя(подтвердил)
Направление сортировки
Responses
Body
Идентефикатор экспорта конфигурации
Дата/Время начала
Дата/Время завершения
Текущий статус
Ожидание подтверждения действия от вышестоящего пользователя
Действие не подтверждено
Завершено
В процессе
Какая конфигурация экспортирутся
Пользователь который создал экспорт конфигурации
Идентефикатор пользователя
Логин пользователя
ФИО пользователя
Пользователь который подтвердил или отменил экспорт конфигурации
Идентефикатор пользователя
Логин пользователя
ФИО пользователя
Устройства на которые заливается конфигурация
Идентефикатор экспорта конфигурации
Идентефикатор устройства
Статус экспорта для этого устройства
Завершено
В процессе, еще не завершеною
Дата завершения
Устройство с которого заливается конфигурация
Идентефикатор устройства
Наименование устройства
Тип устройства
Группа устройства
Логин устройства
Версия прошивки
Комментарий к устройству
Флаг блокировки устройства
Количество страниц
Текущая страница
Флаг наличия следующей страницы
Флаг наличия предыдущей страницы
Всего записей
Количество записей на страницу
GET http://192.168.10.123/api/device-config/index HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true",
"data": [
{
"config_id": 57,
"date_start": "2019-06-04T14:27:16+03:00",
"date_complete": "null",
"status": "IN_PROCESS",
"data": "{\"snmpd\":\"1\"}",
"user": {
"id": 100,
"email": "test@test.com",
"fio": "Вася Пупкин"
},
"ap_user": {
"id": 101,
"email": "testap@test.com",
"fio": "Иванов Иван Иваныч"
},
"device_config_devices": [
{
"config_id": 57,
"device_id": 99,
"status": "IN_PROGRESS",
"data_complete": "null"
}
],
"device": {
"device_id": 10,
"device_name": "BN014000000014",
"device_type": "Fotel BL-01",
"group_id": 5,
"login": "12345678910",
"firmware_version": "1.38.8",
"comment": "Пропа пер",
"blocked": "false"
}
}
],
"pagination": {
"page_count": 1,
"current_page": 1,
"has_next_page": "false",
"has_prev_page": "false",
"count": "20",
"limit": 25
}
}
{config_id}
Authentication
Получает экспорт конфигурации по индентефикатору
Path variables
Идентефикатор экпорта конфигурации
Responses
Body
Идентефикатор экспорта конфигурации
Дата/Время начала
Дата/Время завершения
Текущий статус
Ожидание подтверждения действия от вышестоящего пользователя
Действие не подтверждено
Завершено
В процессе
Какая конфигурация экспортирутся
Пользователь который создал экспорт конфигурации
Идентефикатор пользователя
Логин пользователя
ФИО пользователя
Пользователь который подтвердил или отменил экспорт конфигурации
Идентефикатор пользователя
Логин пользователя
ФИО пользователя
Устройства на которые заливается конфигурация
Идентефикатор экспорта конфигурации
Идентефикатор устройства
Статус экспорта для этого устройства
В процессе, еще не завершеною
Завершено
Дата завершения
Устройство с которого заливается конфигурация
Идентефикатор устройства
Наименование устройства
Тип устройства
Группа устройства
Логин устройства
Версия прошивки
Комментарий к устройству
Флаг блокировки устройства
Body
Body
GET http://192.168.10.123/api/device-config/view/57 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true",
"data": {
"config_id": 57,
"date_start": "2019-06-04T14:27:16+03:00",
"date_complete": "null",
"status": "WAIT_AP",
"data": "{\"snmpd\":\"1\"}",
"user": {
"id": 100,
"email": "test@test.com",
"fio": "Вася Пупкин"
},
"ap_user": {
"id": "100",
"email": "test@test.com",
"fio": "Вася Пупкин"
},
"device_config_devices": [
{
"config_id": 57,
"device_id": 10,
"status": "IN_PROGRESS",
"data_complete": "2019-06-04T14:27:17+03:00"
}
],
"device": {
"device_id": 10,
"device_name": "BN014000000014",
"device_type": "Fotel BL-01",
"group_id": 5,
"login": "12345678910",
"firmware_version": "1.38.8",
"comment": "Бла бла бла",
"blocked": "false"
}
}
}
Authentication
Добавляет новую запись в экпорт конфигурации
Request body
Идентефикатор мастер устройства
Дата/Время начала
Конфигурация сети
Конфиррация межсетевого экрана
Конфигурация DHCP
Конфигурация Quality Of Service
Конфигурация WIFI
Конфигурация SNMP
Конфигурация модемов и агрегации
Конфигурация OpenVpn
Конфигурация SSH
Конфигурация CaptivePortal
Конфигурация пользователей(Права/Пароли/Пользователи)
Масси устройств для заливки конфигурации
Идентефикатор устройства на который будет заливаться конфигурация
Responses
Body
Идентефикатор экспорта конфигурации
Идентефикатор мастер устройства
Дата/Время начала
Текущий статус
Идентефикатор пользователя
Какая конфигурация экспортирутся
Масси устройств для заливки конфигурации
Идентефикатор устройства
Статус экспорта для этого устройства
Ошибки валидации, если есть
Наименование поля, в котором произошла ошибка
"errors": {
"status": {
"inList": "The provided value is invalid"
}
}
Наименование ошибки и сообщение ошибки
Наименование поля, в котором произошла ошибка
"errors": {
"device_config_devices": {
"1": {
"device_id": {
"verifyDevice": "Device not the same to master check device with id:202"
}
}
}
}
Порядковый номер ошибки
POST http://192.168.10.123/api/device-config/add HTTP/1.1
Content-Type: application/json
{
"device_id": 100,
"date_start": "2019-05-30 20:00:00",
"data": {
"network": 0,
"firewall": 0,
"dhcp": 0,
"qos": 0,
"wifi": 0,
"snmpd": 1,
"qcmi": 0,
"openvpn": 0,
"dropbear": 0,
"chilli": 0,
"users": 0
},
"device_config_devices": [
{
"device_id": 101
},
{
"device_id": 102
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": true,
"deviceConfig": {
"config_id": 10,
"device_id": 100,
"date_start": "2019-06-04T14:27:16+03:00",
"status": "WAIT_AP",
"user_id": 5,
"data": "{\"snmpd\":\"1\"}",
"device_config_devices": [
{
"device_id": 101,
"status": "IN_PROGRESS"
},
{
"device_id": 102,
"status": "IN_PROGRESS"
}
]
}
}
Пример с ошибками валидации
POST http://192.168.10.123/api/device-config/add HTTP/1.1
Content-Type: application/json
{
"device_id": 1,
"date_start": "2019-05-30 20:00:00",
"data": {
"network": true,
"firewall": true,
"dhcp": true,
"qos": true,
"wifi": true,
"snmpd": true,
"qcmi": true,
"openvpn": true,
"dropbear": true,
"chilli": true,
"users": true
},
"device_config_devices": [
{
"device_id": 101
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "flase",
"deviceConfig": {
"device_id": 101,
"date_start": "2019-06-04T14:27:16+03:00",
"status": "WAIT_AP",
"user_id": 5,
"data": "{\"snmpd\":\"1\"}",
"device_config_devices": [
{
"device_id": 110,
"status": "IN_PROGRESS"
}
]
},
"errors": {
"status": {
"inList": "The provided value is invalid"
},
"device_config_devices": {
"1": {
"device_id": {
"verifyDevice": "Device not the same to master check device with id:202"
}
}
}
}
}
Authentication
Удаляет экспорт конфигурации
Request body
Идентефикатор экспорта конфигурации
Responses
Body
Body
Body
POST http://192.168.10.123/api/device-config/delete HTTP/1.1
Content-Type: application/json
{
"config_id": 10
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true"
}
Authentication
Удаляет устройство из конкретного экспорта конфигурации
Request body
Идентефикатор экспорта конфигурации
Идентефикатор устройства
Responses
Body
Body
Body
POST http://192.168.10.123/api/device-config/delete-dev HTTP/1.1
Content-Type: application/json
{
"config_id": 10,
"device_id": 101
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true"
}
Authentication
Подтверждение экспорта конфигурации вышестоящим пользователем
Request body
Идентефикатор экспорта конфигурации
Responses
Body
Body
Body
POST http://192.168.10.123/api/device-config/confirm HTTP/1.1
Content-Type: application/json
{
"config_id": 10
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true"
}
Authentication
Отмена экспорта конфигурации вышестоящим пользователем
Request body
Идентефикатор экспорта конфигурации
Responses
Body
Body
Body
POST http://192.168.10.123/api/device-config/cancel HTTP/1.1
Content-Type: application/json
{
"config_id": 65
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "true"
}