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

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

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


Версия

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

В системе реализован 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

    password

    createBill

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

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

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

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

    нет

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

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

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

    Шаблон запроса/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"
    }
  5. Добавление контакта
    Добавить новый контакт пользователю

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

    typeId

    value

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

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

    { "result": "OK" }
  6. Удаление контакта
    Удалить существующий контакт у пользователя

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

    typeId

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

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

    { "result": "OK" }
    
  7. Создание персональной информации

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

    email

    phone

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

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

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

    Шаблон запроса/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": ""
    }
     
  9. Авторизация абонента
    Получение абонентом 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
    }
]

Робота с улицами

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

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

  1. Информация по улицам
    Получить список улиц

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

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

    [
      {
        "type": 0,
        "streetId": 2,
        "streetName": "Героїв Небесної Сотні",
        "id": 2
      }
    ]
  2. Создать улицу

    Шаблон запроса/street/
    Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/streets/1/
    Тип запросаPost
    Структура ответаStreetCreateResult
    Параметры запросаname: string
    Авторизацияadmin

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

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

Робота с домами

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

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

  1. Информация по домам
    Получить список домов

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

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

    [
      {
        "id": 4,
        "streetName": "Каноха",
        "number": "5",
        "districtName": "Main District",
        "streetId": 2
      }
    ]
  2. Информация по дому
    Найти один дом с соответствующим id

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

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

    [
     {
      "contractId": "",
      "mapY2": 0,
      "mapX4": 0,
      "block": "",
      "numberingDirection": 0,
      "flors": 0,
      "affected": 0,
      "contractPrice": 0,
      "mapX2": 0,
      "zip": "",
      "flats": 0,
      "mapX": 0,
      "total": "1",
      "mapX3": 0,
      "id": 1,
      "list": [],
      "number": "1",
      "comments": "",
      "mapY3": 0,
      "contractDate": "0000-00-00",
      "entrances": 0,
      "buildSchema": "",
      "streetId": 3,
      "added": "2020-09-06 23:37:44",
      "mapY4": 0,
      "plannedToConnect": 0,
      "mapY": 0,
      "coordx": 0,
      "coordy": 0
      }
    ]

3. Добавить дом
Добавить новый дом

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

street_id
number
flors
entrances
added
map_x
map_y
coordx
coordy
flats
build_schema
contract_id
contract_date
contract_price
comments
public_comments zip planned_to_connect numbering_direction block

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

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

[
 {
  "contractId": "",
  "mapY2": 0,
  "mapX4": 0,
  "block": "",
  "numberingDirection": 0,
  "flors": 0,
  "affected": 0,
  "contractPrice": 0,
  "mapX2": 0,
  "zip": "",
  "flats": 0,
  "mapX": 0,
  "total": "1",
  "mapX3": 0,
  "id": 1,
  "list": [],
  "number": "1",
  "comments": "",
  "mapY3": 0,
  "contractDate": "0000-00-00",
  "entrances": 0,
  "buildSchema": "",
  "streetId": 3,
  "added": "2020-09-06 23:37:44",
  "mapY4": 0,
  "plannedToConnect": 0,
  "mapY": 0,
  "coordx": 0,
  "coordy": 0
  }
]

4. Изменить дом

Шаблон запроса/builds/<build_id>/
Пример запросаhttps://demo.abills.net.ua:9443/api.cgi/builds/
Тип запросаPUT
Структура ответа{ affected: 0 }
Параметры запроса

street_id
number
flors
entrances
added
map_x
map_y
coordx
coordy
flats
build_schema
contract_id
contract_date
contract_price
comments
public_comments zip planned_to_connect numbering_direction block

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

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

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

Модуль Abon

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

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

1. Доступные пользователю услуги

Шаблон запроса/users/<uid>/abon/
Пример запросаhttp://demo.abillls.net.ua:9443/api.cgi/users/1806/abon
Тип запросаGET
Структура ответа[abonServices]
Параметры запроса

нет

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

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

[
  {
    "name": "Статический IP",
    "missing": 0,
    "period": 1,
    "id": 1,
    "description": "",
    "comments": "",
    "manualActivate": 0,
    "price": 30,
    "activeService": 0
  },
  {
    "activeService": 1,
    "price": 80,
    "sendDocs": 0,
    "serviceCount": "1",
    "manualFee": 0,
    "manualActivate": 0,
    "comments": "",
    "description": "",
    "feesPeriod": 0,
    "notification2": "0000-00-00",
    "notification1AccountId": 0,
    "period": 1,
    "createDocs": 0,
    "nextAbon": "2019-08-01",
    "name": "Телевидение",
    "missing": 0,
    "id": 2,
    "date": "2019-07-01",
    "notification1": "0000-00-00",
    "discount": 0
  }
]

2. Информация по услуге

Шаблон запроса/abon/tariffs/<id>/
Пример запросаhttp://demo.abillls.net.ua:9443/api.cgi/abon/tariffs/2/
Тип запросаGET
Структура ответаAbonServices
Параметры запроса

нет

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

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

{
  "alertAccount": 0,
  "createAccount": 0,
  "period": 1,
  "vat": 0,
  "serviceLink": "",
  "periodAlignment": 1,
  "notificationAccount": 0,
  "name": "Телевидение",
  "paymentType": 1,
  "activateNotification": 0,
  "description": "",
  "domainId": 0,
  "userPortal": 0,
  "manualActivate": 0,
  "list": [],
  "nonfixPeriod": 1,
  "discount": 1,
  "alert": 0,
  "id": 2,
  "feesType": 1,
  "notification1": 0,
  "extBillAccount": 0,
  "priority": 9,
  "account": 0,
  "notification2": 0,
  "total": "1",
  "affected": 0,
  "price": 80,
  "extCmd": ""
}

3. Активировать услугу

Шаблон запроса/abon/tariffs/ <id>/users/<uid>/
Пример запросаhttps://demo.abillls.net.ua:9443/api.cgi/abon/tariffs/2/users/15601/
Тип запросаPOST
Структура ответаAbonAddResult
Параметры запроса

нет

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

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

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

4. Деактивировать услугу

Шаблон запроса/abon/tariffs/ <id>/users/<uid>/
Пример запросаhttps://demo.abillls.net.ua:9443/api.cgi/abon/tariffs/2/users/15601/
Тип запросаDELETE
Структура ответаAbonDelResult
Параметры запроса

нет

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

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

{
  "total": 0,
  "affected": 1
}
  • No labels