Child pages
  • RESTfull JSON API интерфейс управления
Skip to end of metadata
Go to start of metadata

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

API может (и будет) дополняться и изменяться в будущем

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

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

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

Авторизация

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

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

Робота с абонентами 

Название ресурса: users

Доступные операции:

  1. Информация по идентификатору
    Найти одного пользователя с соответствующим uid

    Шаблон запроса/users/<uid>/
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/1
    Тип запросаGET
    Структура ответаUser
    Параметры запросаНет
    Авторизацияadmin

    Ответ на тестовый запрос:

    {
      "companyCredit": 0,
      "credit": 0,
      "gid": 0,
      "creditDate": "0000-00-00",
      "domainId": 0,
      "login": "test",
      "billOwner": 1,
      "total": "1",
      "extBillId": 0,
      "billId": 1,
      "expire": "0000-00-00",
      "activate": "0000-00-00",
      "reductionDate": "0000-00-00",
      "disable": 0,
      "companyVat": 0,
      "uid": 1,
      "deposit": 0,
      "deleted": 0,
      "companyName": "",
      "reduction": 0,
      "affected": 0,
      "registration": "2009-08-03",
      "companyId": 0
    }
  2. Создать пользователя
    Создать нового пользователя с указанными параметрами

    Шаблон запроса/users/
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/
    Тип запросаPOST
    Структура ответаUserCreateResult
    Параметры запроса

    login

    email

    password

    createBill

    Авторизацияadmin

    Ответ на тестовый запрос: 

    {
      "preAdd": 1,
      "total": 0,
      "insertId": "17",
      "uid": "17",
      "affected": 1,
      "login": "test1235"
    }
  3. Подключение модуля интернет
    Найти одного пользователя с соответствующим uid

    Шаблон запроса/users/<uid>/internet
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/1/internet
    Тип запросаPOST
    Структура ответаUserCreateResult
    Параметры запроса

    Нет

    Авторизацияadmin

    Ответ на тестовый запрос: 

    {
      "affected": 1,
      "id": "48",
      "insertId": "48",
      "total": 0,
      "moduleName": "Internet"
    }
  4. Создание персональной информации

    Шаблон запроса/users/<uid>/pi
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/1/pi
    Тип запросаPOST
    Структура ответаPiCreateResult
    Параметры запроса

    email

    phone

    Авторизацияadmin

    Ответ на тестовый запрос: 

    {
      "affected": 1,
      "total": 0
    }
  5. Персональная информация
    Дополнительная персональная информация об абоненте

    Шаблон запроса/users/<uid>/pi
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/1/pi/
    Тип запросаGET
    Структура ответаpi
    Параметры запросаНет
    Авторизацияadmin

    Ответ на тестовый запрос:

    {
      "email": "",
      "viber": "",
      "skypeAll": "",
      "acceptRules": 0,
      "zip": "",
      "regAddress": "",
      "phoneAll": "",
      "entrance": 0,
      "icqAll": "",
      "fio": "Test user",
      "telegram": "",
      "viberAll": "",
      "countryId": 0,
      "contractSufix": "",
      "pasportGrant": "",
      "fio3": "",
      "total": 1,
      "contractId": "",
      "pasportNum": "",
      "cellPhone": "",
      "emailAll": "",
      "addressStreet": "",
      "birthDate": "0000-00-00",
      "google PushAll": "",
      "addressBuild": "",
      "contractDate": "0000-00-00",
      "cellPhoneAll": "",
      "locationId": 0,
      "affected": 0,
      "telegramAll": "",
      "contactsNewAppended": 1,
      "city": "",
      "google Push": "",
      "comments": "",
      "floor": 0,
      "uid": 1,
      "skype": "",
      "fio2": "",
      "taxNumber": "0",
      "icq": "",
      "phone": "",
      "pasportDate": "0000-00-00",
      "addressFlat": ""
    }
     
  6. Авторизация абонента
    Получение абонентом sid для авторизации в последующих запросах

    Шаблон запроса/users/login
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/users/login
    Тип запросаPOST
    Структура ответа{ uid, sid, login }
    Параметры запроса
    • login
    • password
    АвторизацияНет

    Ответ на тестовый запрос:

    {
      "uid": 1,
      "login": "test",
      "sid": "KCWa3EWfWv7BNecd"
    }

Робота с группами 

Название ресурса: groups

Доступные операции:

  1. Список доступных в системе групп
    Общая информация о всех группах

    Шаблон запроса/groups
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/groups
    Тип запросаGET
    Структура ответа[ Group ]
    Параметры запросаНет
    Авторизацияadmin

    Ответ на тестовый запрос:

    [
      {
        "disableChgTp": 0,
        "disablePaysys": 0,
        "gid": 1,
        "descr": "Деск",
        "usersCount": 0,
        "domainId": 0,
        "name": "тест",
        "allowCredit": 0
      }
    ]

Робота с сообщениями

Название ресурса: msgs

Доступные операции:

        1. Создание сообщения 

Шаблон запроса

/msgs/<uid>/send/

Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/msgs/1/send/
Тип запросаPOST
Структура ответа

{ "insertId": "13", "msgId": "13", "affected": 1, "total": 0 }

Параметры запроса

message

subject

chapter

priority

Авторизация

admin

Ответ на тестовый запрос:

{
    "insertId": "13",
    "msgId": "13",
    "affected": 1,
    "total": 0
}

        2. Ответ на сообщения

Шаблон запроса

/msgs/<ID>/reply/<UID>/

Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/msgs/122/reply/1/
Тип запросаPOST
Структура ответа

{ "total": 0, "affected": 1, "insertId": "1", "replyId": "1" }

Параметры запроса

replyText

Авторизация

admin

Ответ на тестовый запрос:

{
    "total": 0,
    "affected": 1,
    "insertId": "1",
    "replyId": "1"
}

      3. Список сообщений 

Шаблон запроса

/msgs/

Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/msgs/
Тип запросаPOST
Структура ответа

[ messages ]

Параметры запроса

aid

state

Авторизация

admin

Ответ на тестовый запрос:

[
    {
        "uid": 1,
        "resposible": 0,
        "planTime": "00:00:00",
        "id": 12,
        "aid": 1,
        "deligation": 0,
        "innerMsg": 0,
        "state": 0,
        "chapterId": 1
    }
]

       4. Информация о сообщении

Шаблон запроса

/msgs/info/<msg_id>/

Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/msgs/info/1/
Тип запросаGET
Структура ответа

{ info }

Параметры запроса

Нет

Авторизация

admin

Ответ на тестовый запрос:

{
    "closedDate": "0000-00-00 00:00:00",
    "login": "test",
    "ratingComment": "",
    "userRead": "2020-09-07 13:26:40",
    "chapterName": "-",
    "dispatchId": 0,
    "aName": "abills",
    "deligation": 0,
    "rating": 0,
    "innerMsg": 0,
    "resposible": 0,
    "planTime": "00:00:00",
    "chapter": 1,
    "surveyId": 0,
    "message": "testststststtststststs",
    "date": "2020-09-07 12:07:11",
    "doneDate": "0000-00-00",
    "ip": "0.0.0.0",
    "reply": "",
    "priority": 2,
    "id": 12,
    "lockMsg": 0,
    "planDate": "0000-00-00",
    "subject": "test api msgs",
    "affected": 0,
    "total": "0",
    "lastReplieDate": "2020-09-07 13:26:40",
    "errstr": "ERROR_NOT_EXIST",
    "domainId": 0,
    "uid": 1,
    "gid": 0,
    "aid": 1,
    "par": 0,
    "deligationLevel": 0,
    "locationId": 0,
    "phone": "",
    "adminRead": "0000-00-00 00:00:00",
    "state": 0,
    "ticketRunTime": "00:00:00"
}

      5. Информация о сообщении (ответы)

Шаблон запроса

/msgs/info/<msg_id>/reply/

Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/msgs/info/1/reply/
Тип запросаPOST
Структура ответа

[ reply ]

Параметры запроса

Нет

Авторизация

admin

Ответ на тестовый запрос:

[
    {
        "creatorFio": "abills",
        "surveyId": 0,
        "status": 0,
        "runTime": "00:00:00",
        "mainMsg": 12,
        "creatorId": "abills",
        "id": 1,
        "innerMsg": 0,
        "ip": "0.0.0.0",
        "uid": 0,
        "datetime": "2020-09-07 12:19:19",
        "caption": "",
        "text": "teststststtsts",
        "aid": 1
    }
]
  • No labels