Блог PQ Hosting

20.06.2022, 13:26

API называют программный интерфейс, который позволяет управлять любым приложением через набор команд и функций. Например, есть API Яндекс Музыки, благодаря которому можно прослушивать музыкальные композиции на сайте. В нашей работе мы используем биллинг BILLmanager.

У него есть свой API, с помощью которого можно масштабировать серверы на гибких тарифах, получать информацию о платежах, списаниях со счёта. У любого разработчика API на сайте, как правило, приведена подробная документация по установке и настройке программного интерфейса.

Однако документация по API BILLmanager сложная в освоении. Если вы желаете стать профессионалом в работе с API, тогда самое время начать изучение документации. Если для вас главное выполнить задачу и получить результат в короткий срок, достаточно воспользоваться инструкцией, которую мы изложим ниже. 

Список параметров

Один из первых вопросов, возникающих во время работы с API BILLmanager, это где взять список параметров? Все параметры для работы с BILLmanager можно найти в документации от разработчика. С полным перечнем рабочих параметров можно ознакомиться, перейдя по этой ссылке. 

Как получить список VDS

Чтобы получить список VDS, необходимо выполнить запрос на следующий URL:

https://bill.pq.hosting/billmgr?func=vds&authinfo=username:password&out=JSONdata

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

  • authinfo — данные авторизации в биллинге;
  • func — функция выполняемая в биллинге;
  • out — формат вывода данных, поддерживаются xml, json и JSONdata.


Во всех запросах нужно использовать свои персональные данные, так
меняем username:password на свой логин и пароль, затем выполняем GET запрос, например, при помощи CURL.

Как заказать VDS

Чтобы заказать VDS, необходимо выполнить запрос на следующий URL:

https://bill.pq.hosting/billmgr?func=vds.order.param&authinfo=username:password&addon_10=6&addon_11=256&addon_12=500
&addon_13=1&addon_14=28&addon_15=0&addon_28=1&addon_7=5000&addon_9=5&autoprolong=1
&ostempl=ISPsystem%5F%5FCentOS%2D7%2Damd64&period=1&pricelist=6&skipbasket=on&domain=vds.test&sok=ok

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

  • authinfo — данные авторизации в биллинге;
  • func — функция выполняемая в биллинге;
  • addon_X — дополнение к заказу (опционально), например, для заказа панели управления или IPv6 адресов;
  • autoprolong — опция включающая или выключающая автоматическое продление сервера;
  • ostempl — шаблон OS для заказа;
  • period — период заказа, указывается кол-во месяцев, поддерживаются 1, 3, 6, 12; 
  • pricelist — ID тарифного плана;
  • skipbasket — флаг пропуска этапа оформления корзины, для автоматического заказа услуги;
  • domain — доменное имя сервера (опционально);
  • sok — подтверждение запроса.


Изменение параметров сервера

API для изменения параметров виртуального сервера:

https://bill.pq.hosting/billmgr?func=vds.edit&authinfo=username:password&addon_11=512&elid=958&domain=company.com&sok=ok

Для изменения параметров выделенного сервера:

https://bill.pq.hosting/billmgr?func=dedic.edit&authinfo=username:password&addon_26=10&addon_26=10&addon_28=5000&elid=1065&sok=ok

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

  • authinfo — данные авторизации в биллинге;
  • func — функция выполняемая в биллинге;
  • elid — код услуги;
  • addon_X — дополнение для изменения (опционально), например, для изменения кол-ва IP адресов;
  • domain — доменное имя (опционально);
  • sok — подтверждение запроса.


Дополнения тарифного плана при заказе или изменении услуги по API передаются через параметр addon_, который принимает значение addon_5=10, где 5 — код дополнения, 10 — значение.

При составлении API запросов можно пользоваться консолью браузера, на вкладке "сеть" можно посмотреть какие запросы делаются из браузера при заказе сервера, эти же параметры можно передавать через API запросы. В списке выше описаны примеры API запросов, с неполным списком функций и параметров.

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

Если нужно удалить VDS, добавить память или ядра процессора, это можно сделать и без API BILLmanager. Однако в случае заказа 10, 100 VDS или массового изменения параметров серверов данный процесс может затянуться на несколько часов. Для подобных случаев принято использовать циклы:

#!/bin/bash
seq 1 32 | while read line; do
  curl -s -k "https://bill.pq.hosting/billmgr?func=vds.order.param&authinfo=username:password&addon_10=6&addon_11=256&addon_12=500
&addon_13=1&addon_14=28&addon_15=0&addon_28=1&addon_7=5000&addon_9=5&autoprolong=1
&ostempl=ISPsystem%5F%5FCentOS%2D7%2Damd64&period=1&pricelist=6&skipbasket=on&domain=vds.test$line&sok=ok"
done

В примере используется API запрос заказа сервера, в seq указывается кол-во серверов для заказа. Параметры заказа сервера аналогичны заказу единичного сервера без использования циклов.

Полная документация по работе с BILLmanager API от разработчика изложена здесь