InfoboxCloud REST API. Часть 1: Введение
Вы можете управлять облачной инфраструктурой не только из панели управления, но и из вашего программного обеспечения, используя для интеграции мощный интерфейс управления облаком (REST API). Полную документацию по API можно получить по ссылке (pdf).
Обратите внимание, что API был обновлен до версии 6.0.

В этой статье мы рассмотрим процесс авторизации в API и выполним простой запрос.
Работа с ресурсами осуществляется через отправку API-запросов управляющему серверу InfoboxCloud. Ответы приходят в XML-формате. Код максимально ориентирован на конечного пользователя, поэтому все поля имеют понятные имена.
Управление можно легко автоматизировать. Сам XML довольно просто анализируется стандартными функциями парсинга, если это необходимо.
Обращаться к API нужно по адресу управляющего сервера InfoboxCloud API (baseURL):
Дальнейшее общение с виртуальным сервером осуществляется при помощи расширения baseURL «вправо» — необходимо просто поставить знак "/" (без кавычек) и дописать дополнительные параметры к baseURL.
Например, /ve — обращение к виртуальному серверу. Поскольку сервер обычно имеет свой идентификатор, то после /ve дописывается имя сервера: например, /my-server-01.
Строка baseURL с двумя дополнительными параметрами принимает вид:
Это равноценно строке:
Некоторые запросы позволяют определение дополнительных параметров. Все дополнительные параметры перечисляются после знака вопроса.
Примером такого запроса может служить следующая строка:
2. Управление автомасштабированием:
3. Управление образами
4. Управление балансировщиком нагрузки
5. Дополнительные инструменты:
В этой и последующих статьях мы будем рассматривать различные аспекты работы с API. Ссылки на последующие статьи будут добавлены в конец этой статьи.
Войдите в панель управления. Затем перейдите в раздел «Доступ к API» и нажмите «Создать ключ API», как показано на скриншоте ниже.


Пусть в панели управления мы получили ключ API: 12345q.
Логин от панели управления: p777user
В незакодированном виде данные будут выглядеть так:
При передаче запроса вы можете средствами технологии разработки, которую вы используете закодировать ключ в Base64.
Либо можно воспользоваться средствами ОС.
Можно сохранить login и apikey в переменные окружения ОС и обращаться к ним из запроса так:
При обращении к переменным окружения перед переменной ставится знак $, например $login.
Обратная процедура из Base64 в комбинацию login:apikey выглядит так:

Обратная процедура из Base64 в комбинацию login:apikey выглядит для OS X так:
Для Linux так:

API позволяет использовать функциональность Callback для получения ответов асинхронно. Это удобно для запросов, которые исполняются долго. Пример использования Callback можно посмотреть в документации на страницах 8 и 81. Мы рассмотрим полный пример использования Callback в последующих статьях.


Если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
Успешного использования InfoboxCloud!
Обратите внимание, что API был обновлен до версии 6.0.

В этой статье мы рассмотрим процесс авторизации в API и выполним простой запрос.
Введение
API предоставляет программный доступ к ресурсам REST. Используя API, вы можете получать информацию о ресурсах и выполнять действия с ними. Например, вы можете получить список серверов, запускать и останавливать их, изменять конфигурацию серверов, создавать и удалять сервера и выполнять множество других задач управления.Работа с ресурсами осуществляется через отправку API-запросов управляющему серверу InfoboxCloud. Ответы приходят в XML-формате. Код максимально ориентирован на конечного пользователя, поэтому все поля имеют понятные имена.
Управление можно легко автоматизировать. Сам XML довольно просто анализируется стандартными функциями парсинга, если это необходимо.
Обращаться к API нужно по адресу управляющего сервера InfoboxCloud API (baseURL):
https://ciapi.pa.infobox.ru:4464/paci/v1.0
Дальнейшее общение с виртуальным сервером осуществляется при помощи расширения baseURL «вправо» — необходимо просто поставить знак "/" (без кавычек) и дописать дополнительные параметры к baseURL.
Например, /ve — обращение к виртуальному серверу. Поскольку сервер обычно имеет свой идентификатор, то после /ve дописывается имя сервера: например, /my-server-01.
Строка baseURL с двумя дополнительными параметрами принимает вид:
https://ciapi.pa.infobox.ru:4465/paci/v1.0/ve/my-server-01
Это равноценно строке:
baseURL/ve/my-server-01
Некоторые запросы позволяют определение дополнительных параметров. Все дополнительные параметры перечисляются после знака вопроса.
Примером такого запроса может служить следующая строка:
GET baseURL/ve?subscription=1000001
Действия, доступные через API
1. Управление серверами:- Показ списка серверов;
- Запуск и остановка сервера;
- Создание сервера;
- Создание сервера из образа;
- Клонирование сервера;
- Пересоздание сервера;
- Изменение конфигурации сервера;
- Сброс пароля администратора сервера;
- Получение информации о сервере;
- Получение истории сервера;
- Получение информации об использовании сервера;
- Удаление сервера;
- Управление встроенным файрволлом;
- Резервное копирование и восстановление;
2. Управление автомасштабированием:
- Создание правил автомасштабирования
- Обновление правил автомасштабирования
- Получение правил автомасштабирования
- Удаление правил автомасштабирования
- Получение истории автомасштабирования
3. Управление образами
- Получение списка образов
- Получение информации об образе
- Создание образа из сервера
- Удаление образа
4. Управление балансировщиком нагрузки
- Отображение балансировщиков нагрузки
- Получение информации о балансировщиках нагрузки
- Создание балансировщика нагрузки
- Создание балансировщика нагрузки для конкретной подписки
- Получение истории балансировщика нагрузки
- Перезапуск балансировщика нагрузки
- Удаление балансировщика нагрузки
- Добавление сервера к балансировщику нагрузки
- Отключение сервера от балансировщика нагрузки
5. Дополнительные инструменты:
- Получение списка образов ОС
- Получение плана резервного копирования
В этой и последующих статьях мы будем рассматривать различные аспекты работы с API. Ссылки на последующие статьи будут добавлены в конец этой статьи.
Получение ключа API
Ключ API можно получить в панели управления InfoboxCloud.Войдите в панель управления. Затем перейдите в раздел «Доступ к API» и нажмите «Создать ключ API», как показано на скриншоте ниже.


Требуемые заголовки запросов HTTP
При отправке запроса HTTPS заголовок должен содержать информацию для аутентификации и content-type.Аутентификация
PACI REST API использует базовую схему аутентификации, определенную в RFC 1945. Заголовок запроса HTTP должен содержать данные для доступа в форме логин от панели управления и ключ API, разделенные двоеточием в кодировке Base64.Пусть в панели управления мы получили ключ API: 12345q.
Логин от панели управления: p777user
В незакодированном виде данные будут выглядеть так:
p777user:12345q
При передаче запроса вы можете средствами технологии разработки, которую вы используете закодировать ключ в Base64.
Либо можно воспользоваться средствами ОС.
Кодирование в Base64 и обратно средствами Windows Powershell
В Powershell выполните следующие команды:[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "login","apikey")))
, где login – ваш логин в панель управления, а apikey – ключ api. Можно сохранить login и apikey в переменные окружения ОС и обращаться к ним из запроса так:
[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $login, $apikey)))
При обращении к переменным окружения перед переменной ставится знак $, например $login.
Обратная процедура из Base64 в комбинацию login:apikey выглядит так:
[Text.Encoding]::ASCII.GetString([Convert]::FromBase64String(("{0}" -f "base64Variable")))
, где base64variable – закодированные в base64 данные для доступа.
Кодирование в Base64 и обратно средствами Linux/OS X
В терминале выполните следующую команду:echo -n "login:apikey" | base64
, где login – ваш логин в панель управления, а apikey – ключ api.Обратная процедура из Base64 в комбинацию login:apikey выглядит для OS X так:
echo -n "base64variable" | base64 -D
, где base64variable – закодированные в base64 данные для доступа. Для Linux так:
echo -n "base64variable" | base64 -d
, где base64variable – закодированные в base64 данные для доступа. 
Content–type
Для запросов Content-type должен быть установлен в «application/xml»:Content-type: application/xml
API позволяет использовать функциональность Callback для получения ответов асинхронно. Это удобно для запросов, которые исполняются долго. Пример использования Callback можно посмотреть в документации на страницах 8 и 81. Мы рассмотрим полный пример использования Callback в последующих статьях.
Отправляем запрос к API
Пришло время протестировать, как отправляются запросы к API.На Windows Powershell
$xml = Invoke-RestMethod -Uri https://ciapi.pa.infobox.ru:4464/paci/v1.0/ve -Method Get -Headers @{Authorization=("Basic {0}" -f "base64variable")} -ContentType "application/xml"
, где base64variable – закодированные в base64 данные для доступа.$xml.OuterXml

На Linux/OS X
curl -i -H "Content-type: application/xml" -H "Authorization: Basic base64variable" -X GET "https://ciapi.pa.infobox.ru:4464/paci/v1.0/ve"
, где base64variable – закодированные в base64 данные для доступа.
Заключение
В этой статье мы подключились к API, авторизовались и успешно выполнили запрос. Более подробную информацию о возможностях API можно получить в официальной документации. В следующих статьях мы рассмотрим использование API для конкретных задач и технологий.Если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
Успешного использования InfoboxCloud!
1 комментарий