-
Notifications
You must be signed in to change notification settings - Fork 152
REST API v1
Структура запроса HTTP_METHOD /RESOURCE/[IDENTIFIERS]
Поддерживаются следующие HTTP методы
GET - получение данных
PUT - обновление
POST - создание
DELETE - удаление
Один или несколько. Идентификаторы разделяются запятой "," без пробелов.
Структура ответа
{
"status" : "OK" || "ERROR",
"results" : [],
"error" : "" // Поле содержит строку сообщения об ошибке.
}
Поддерживается basic HTTP authentication. При включенной аутентификации все запросы к API должны содержать корректный заголовок Authorization
. При отсутствии этого заголовка или если в нем содержатся некорректные данные - ответ сервера будет содержать HTTP статус 401 Unauthorized
и сообщение:
< {"status":"ERROR","results":"","error":"401 Unauthorized request"}
Для успешной аутентификации достаточно добавить в каждый запрос к API заголовок:
Authorization: Basic <base64encode("login":"password")>
Управление приставками (рекомендуется использовать ресурс ACCOUNTS вместо STB)
Идентификатор: лицевой счет, MAC адрес (один ЛС может содержать больше одной приставки)
Поддерживаемые методы: GET
, PUT
, DELETE
, POST
Разрешенные поля для обновления: status
, additional_services_on
, ls
Разрешенные поля для добавления: mac
, login
, password
, status
, additional_services_on
, ls
Описание полей
mac - MAC адрес приставки
ls - лицевой счет
status - административный статус (1 - включена, 0 - выключена)
additional_services_on - статус подключения дополнительных услуг, таких как Видеоклуб, Караоке и т.д. (1 - включена, 0 - выключена)
Пример 1. Получение данных о всех приставках
> GET [API_URL]/stb
< {"status":"OK","results":[{"mac":"00:1A:79:00:15:B3","status":0,"additional_services_on":"0","ls":1553},{"mac":"00:1A:79:00:39:5E","status":0,"additional_services_on":"1","ls":3}]
Пример 2. Получение данных об одной приставке по идентификатору
> GET [API_URL]/stb/1553
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","status":1,"additional_services_on":"1","ls":1553}]}
Пример 3. Получение данных о нескольких приставках по идентификаторам
> GET [API_URL]/stb/1553,3
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","status":1,"additional_services_on":"1","ls":1553},{"mac":"00:1A:79:00:21:40","status":0,"additional_services_on":"0","ls":3}]}
Пример 4. Обновление данных приставки по идентификатору
> PUT [API_URL]/stb/1553
> status=1&additional_services_on=0
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","status":1,"additional_services_on":"0","ls":1553}]}
Пример 5. Удаление приставки по идентификатору
> DELETE [API_URL]/stb/1553
< {"status":"OK","results":true}
Пример 6. Добавление приставки по с логином и паролем (для аутентификации)
> POST [API_URL]/stb/
> login=test&password=1234
< {"status":"OK","results":{"mac":"","status":1,"additional_services_on":"1","ls":"0","login":"test"}}
Пример 7. Добавление приставки с выключенными дополнительными сервисами
> POST [API_URL]/stb/
> mac=00:1A:79:00:39:5E&additional_services_on=0
< {"status":"OK","results":{"mac":"00:1A:79:00:39:5E","status":1,"additional_services_on":"0","ls":"0","login":""}
Управление учетными записями пользователей (вместо ресурса STB)
Идентификатор: лицевой счет, MAC адрес (один ЛС может содержать больше одной приставки)
Поддерживаемые методы: GET
, PUT
, DELETE
, POST
Разрешенные поля для обновления: password
, full_name
, account_number
, tariff_plan
, status
, stb_mac
Разрешенные поля для добавления: login
, password
, full_name
, account_number
, tariff_plan
, status
, stb_mac
Обязательные поля: login
Описание полей
login - Логин для авторизации. Уникален. (обязателен)
password - Пароль для авторизации
full_name - Наименование пользователя (ФИО или название организации)
account_number - Номер лицевого счета
tariff_plan - Идентификатор тарифного плана
status - административный статус (1 - включена, 0 - выключена)
stb_mac - MAC адрес приставки
stb_sn - Серийный номер устройства
stb_type - Модель устройства
subscribed - Список идентификаторов опциональных пакетов, на которые есть подписка
Пример 1. Получение данных о пользователе
> GET [API_URL]/accounts/00:1A:79:00:39:5E
< {"status":"OK","results":[{"login":"3210","full_name":"Test","account_number":"123","tariff_plan":"FULL","stb_sn":"123345","stb_mac":"FF:FF:FF:FF:FF:FF","stb_type":"MAG250","status":1,"subscribed":[]}]
Пример 2. Создание учетной записи пользователя
> POST [API_URL]/accounts/
> login=3210&password=1234&full_name=Test&account_number=123&tariff_plan=FULL&status=1
< {"status":"OK","results":true}
Пример 3. Обновление учетной записи пользователя
> PUT [API_URL]/accounts/00:1A:79:00:39:5E
> tariff_plan=STANDART
< {"status":"OK","results":true}
Пример 4. Удаление учетной записи пользователя
> DELETE [API_URL]/accounts/00:1A:79:00:39:5E
< {"status":"OK","results":true}
Отправка сообщений на приставку
Идентификатор: лицевой счет, MAC адрес (один ЛС может содержать больше одной приставки)
Поддерживаемые методы: POST
Разрешенные поля для обновления: msg
(текст сообщения должен быть url encoded)
При успешном добавлении в results возвращается true.
Пример 1. Обновление данных приставки по идентификатору
> POST [API_URL]/stb_msg/1553
> msg=%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D1%81%D0%B2%D1%8F%D0%B7%D0%B8
< {"status":"OK","results":true]}
Управление доступом к модулям (разделам главного меню)
Идентификатор: лицевой счет, MAC адрес (один ЛС может содержать больше одной приставки)
Поддерживаемые методы: PUT
, GET
Разрешенные поля для обновления: disabled
(разделы не отображаются, требуется перезагрузка), restricted
(ограничивается доступ)
Пример 1. Запрет доступа в разделы vclub karaoke, отключение модуля radio
> POST [API_URL]/stb_modules/00:1A:79:00:39:5E
> restricted[]=vclub&restricted[]=karaoke&disabled[]=radio
< {"status":"OK","results":{"disabled":["radio"],"restricted":["vclub","karaoke"]}}
Пример 2. Отключение всех ограничений
> POST [API_URL]/stb_modules/00:1A:79:00:39:5E
> restricted[]=&disabled[]=
< {"status":"OK","results":{"disabled":[""],"restricted":[""]}}
Получение списка каналов
Идентификатор: ID канала
Поддерживаемые методы: GET
Описание полей
id - ID канала
name - имя канала
number - номер канала
base_ch - идентификатор базового канала
Пример 1. Получение данных о всех каналах
> GET [API_URL]/itv
< {"status":"OK","results":[{"id":"37","name":"\u041c-TV \u0423\u043a\u0440\u0430\u0438\u043d\u0430","number":"64"}, ...]
Управление подпиской на каналы
Идентификатор: лицевой счет, MAC адрес (один ЛС может содержать больше одной приставки)
Поддерживаемые методы: GET
, PUT
Разрешенные поля для обновления: sub_ch
Описание полей
ls - лицевой счет
mac - MAC адрес приставки
sub_ch - список ID каналов
additional_services_on - статус подключения дополнительных услуг
Пример 1. Получение данных о подписке для всех приставок
> GET [API_URL]/itv_subscription
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","sub_ch":["27"],"ls":1553,"additional_services_on":"0"}, {"mac":"00:1A:79:00:15:B3","sub_ch":["27", "29"],"ls":3,"additional_services_on":"0"}]}
Пример 2. Получение данных о подписке для конкретного лицевого счета
> GET [API_URL]/itv_subscription/1553
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","sub_ch":["27"],"ls":1553,"additional_services_on":"0"},{"sub_ch":["58"],"mac":"00:1A:79:00:15:B3","ls":"1553","additional_services_on":"0"}]}
Пример 3. Получение данных о подписке для конкретной приставки
> GET [API_URL]/itv_subscription/00:1A:79:00:39:5E
< {"status":"OK","results":[{"mac":"00:1A:79:00:39:5E","sub_ch":["27"],"ls":1553,"additional_services_on":"0"}]}
Пример 4. Обновление данных о подписке для всех приставок на лицевом счете
> PUT [API_URL]/itv_subscription/1553
> sub_ch[]=27&sub_ch[]=29&additional_services_on=1
< {"status":"OK","results":[{"sub_ch":["27","29"],"mac":"00:1A:79:00:15:B3","ls":"1553","additional_services_on":"1"},{"sub_ch":["27","29"],"mac":"00:1A:79:00:39:5E","ls":"1553","additional_services_on":"1"}]}