Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Доступно с версии 0.84

Рекомендуемая минимальная версия для использования 01.9300

Общая информация

Table of Contents

Подключение

maxLevel

Конфигурация

3

Авторизация

Children Display

  • Тестирование
  • Логирование
  • Примеры работы

  • Запуск на nginx

    sortcreation


    Warning

    В данный момент находится в процессе активной разработки

    API постоянно расширяется и изменяется, следите за новыми версиями

    Общая информация

    Подключение

    Code Block
    $conf{API_ENABLE} = 1;

    Конфигурация

    В системе реализован RESTful интерфейс управления услугами и абонентами. Интерфейс находит по адресу /api.cgi.
    Отправка, получение данных производится по протоколу HTTP POST/GET/PUT/DELETE. Все взаимодействие по интерфейсу выполняется по принципам REST (ресурс определяться по средствам задания имени в URL).

    Для сохранение совместимости с стандартом REST все ключи автоматически переводятся в camelCase, но поскольку несоответствие названий в базе данных может усложнить разработку – существует возможность отключить такое превращение используя несколько вариантов:

    1. Параметр $conf{API_FILDS_CAMELIZE} в конфигурационном файле
    2. Задать в заголовках запроса CAMELIZE в соответствующие значение (имеет приоритет над значением в конфигурационном файле)параметрах snakeCase=1 в GET или в POST "snakeCase": "1"
    ЗначениеРезультат
    1Все ключи превращаются в camelCase
    0Ключи в исходном виде, как в базе данных (snake_case)


    Сделать ограничение на Admin RESTful API, можно с помощью опции $conf{API_IPS}, в конфигурационном файле config.pl, пример

    Code Block
    $conf{API_IPS} = '192.20.208.1, 217.116.76.0/24, 104.81.60.171';

    Или в настройках Настройка>Администраторы>Доступ


    Возвращать по почту письма, смс или другие вещи которые поддерживают перевод в RESTful API, можно включить с помощью опции $conf{API_CONF_LANGUAGE}, в конфигурационном файле config.pl, пример

    Code Block
    $conf{API_CONF_LANGUAGE} = 1;

    Опция дебага, позволяет выводить debuginfo при ошибке, и также её сохранять с API_LOG. Никак не влияет на работу системы.

    Code Block
    $conf{API_DEBUG} = 1;


    Авторизация

    Для подтверждения личности при выполнении запросов, некоторые пути требуют соответствующий привилегии:

    • Авторизация администратора выполняется через API_KEY. Ключ нужно передать в заголовке запроса KEY в значении API_KEY.
      Для получения API_KEY нужно его задать через веб-интерфейс
      Настройки > Администраторы, поле API_KEY.
    • Пользователям нужно использовать идентификатор сессии (sid), передавая его значение в заголовке USERSID
      Для получения sid можно воспользоваться авторизацией через API используя маршрут путь авторизация абонента (/usersuser/login).


    Разрешить получить сессию администратора с помощью REST API

    Code Block
    $conf{API_ADMIN_AUTH_LOGIN} = 1;


    СТРОГО НЕ РЕКОМЕНДУЕТСЯ ДЛЯ ИСПОЛЬЗОВАНИЯ!!! Возвращает apiKey в запросе на получение сессии!!!

    Code Block
    $conf{API_ADMIN_AUTH_LOGIN_RETURN_API_KEY} = 1;


    Запуск на nginx

    Чтобы включить поддержку nginx нужно:


    Работа с API для ботов

    для авторизации в USER API телеграмм бота необходимо

    1) Прописать IP с которых будет обращаться бот к серверу

    Code Block
    $conf{BOT_APIS}='127.0.0.1';

    2) Прописать секрет бота для дополнительной проверки запроса (любое значение)

    Code Block
    $conf{BOT_SECRET}='test1234567787654';

    Авторизация происходит по хедеру X-ABillS-Bot-Secret

    X-ABillS-Bot-Secret хранится в телеграм боте и передается для авторизации

    Получение информации по пользователю и работа с пользователем

    1) хедер X-ABillS-Bot - какой именно бот авторизуется, возможные варианты - Viber, Telegram

    2) хедер X-ABillS-User-ID - id пользователя в боте

    3) хедер X-ABillS-Admin-ID - id админа в боте


    Получить OpenAPI вашей версии

    1) Прямо с API

    Выставьте переменную:

    Code Block
    $conf{API_SWAGGER} = 1;

    Обращайтесь за
    USER API     - /api.cgi/swagger
    ADMIN API - /api.cgi/swagger/admin

    Для того, чтобы развернуть Redocly, скопируйте файлы с misc/api/redocly/ в cgi-bin.
    USER API     - /redocly-user.html
    ADMIN API - /redocly-admin.html

    2) Прямо с файла

    В каждом биллинге уже установлен полностью скомпилированный OpenAPI.
    Они находятся за путями misc/api/bundle_user.yaml и misc/api/bundle_admin.yaml

    Стандарт REST

    Реализованный в системе RESTful интерфейс управления услугами и абонентами соответствует стандарту REST API.