Сегодня мы поговорим о практических кейсах, в рамках которых используется API нашего IaaS-провайдера 1cloud. Его основная задача — обеспечение интеграции клиентских приложений и нашей ИТ-инфраструктуры.

/ фото Rachel Johnson CC
Один из наших основных принципов работы заключается в предоставлении клиентам простого и удобного интерфейса. Задача состоит в том, чтобы сделать виртуальную инфраструктуру доступной даже для тех, кто еще не сталкивался с настройкой ИТ-составляющей своего проекта.
Пользовательские действия в панели панели управления создают соответствующие задания, которые обрабатывает служебных сервис. Такой подход позволяет создать универсальные условия для работы с помощью графического интерфейса и посредством нашего REST API.
Таким образом, приложения наших клиентов могут формировать аналогичные задания для обработчика и отслеживать ход их выполнения с помощью специальных запросов. Для этого необходимо авторизовать приложение, получив уникальный ключ в панели управления.

Авторизация приложения для работы с API происходит с помощью вставки в заголовок запроса токена (закрытого ключа), данная схема безопасна, т.к. используется SSL-шифрование. Токен можно сгенерировать в панели управления (на скриншоте выше).
Наш API позволяет автоматизировать ряд служебных задач, с которыми сталкивается любая компания, пользующаяся виртуальной инфраструктурой. Наибольшую пользу смогу извлечь те, кто занимается реселлингом хостинг услуг, выводит собственные сервисы в облако нашего IaaS-провайдера и предпочитает быстро масштабировать уже зарезервированные мощности.
Например, разработчики могут автоматически задействовать дополнительные ресурсы облака, если системы мониторинга зафиксируют пик нагрузки. При спаде — автоматически отказаться от неиспользуемых ресурсов. Все это можно осуществлять с помощью нашего API.
В рамках работы с сервером возможно осуществлять такие действия как: получение списка всех серверов; поиск сервера по его идентификатору; изменение настроек и удаление сервера.
Существует несколько реализаций клиентских приложений для нашего API.
Пример самого распространенного действия — создания нового сервера:
В ответ приходит JSON-объект с атрибутами созданного сервера:
Пример для создания шаблона виртуального сервера (POST-запрос по адресу api.1cloud.ru/image):
Еще один пример — создание частной сети (POST-запрос):
P.S. Для аудитории Хабрахабра мы предоставляем расширенный тестовый период, в ходе которого мы готовы оказать поддержку всем пользователям (для его активации достаточно написать нам на адрес support@1cloud.ru).

/ фото Rachel Johnson CC
Один из наших основных принципов работы заключается в предоставлении клиентам простого и удобного интерфейса. Задача состоит в том, чтобы сделать виртуальную инфраструктуру доступной даже для тех, кто еще не сталкивался с настройкой ИТ-составляющей своего проекта.
Пользовательские действия в панели панели управления создают соответствующие задания, которые обрабатывает служебных сервис. Такой подход позволяет создать универсальные условия для работы с помощью графического интерфейса и посредством нашего REST API.
Таким образом, приложения наших клиентов могут формировать аналогичные задания для обработчика и отслеживать ход их выполнения с помощью специальных запросов. Для этого необходимо авторизовать приложение, получив уникальный ключ в панели управления.

Авторизация приложения для работы с API происходит с помощью вставки в заголовок запроса токена (закрытого ключа), данная схема безопасна, т.к. используется SSL-шифрование. Токен можно сгенерировать в панели управления (на скриншоте выше).
Наш API позволяет автоматизировать ряд служебных задач, с которыми сталкивается любая компания, пользующаяся виртуальной инфраструктурой. Наибольшую пользу смогу извлечь те, кто занимается реселлингом хостинг услуг, выводит собственные сервисы в облако нашего IaaS-провайдера и предпочитает быстро масштабировать уже зарезервированные мощности.
Например, разработчики могут автоматически задействовать дополнительные ресурсы облака, если системы мониторинга зафиксируют пик нагрузки. При спаде — автоматически отказаться от неиспользуемых ресурсов. Все это можно осуществлять с помощью нашего API.
В рамках работы с сервером возможно осуществлять такие действия как: получение списка всех серверов; поиск сервера по его идентификатору; изменение настроек и удаление сервера.
Существует несколько реализаций клиентских приложений для нашего API.
- На C# — код на Github (благодарность за создание partyz0ne);
- На PHP — код на Github (благодарность wapmorgan);
- На node.js — код на Github (благодарность serkamikadze).
Пример самого распространенного действия — создания нового сервера:
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/Server" -d '{"Name":"testAPI","CPU":1,"RAM":1024,"HDD":40,"imageID":1,"HDDType":"SSD","IsHighPerformance":true}'
В ответ приходит JSON-объект с атрибутами созданного сервера:
{
"ID":777,
"Name":"testAPI",
"State":"Active",
"IsPowerOn":true,
"CPU":1,
"RAM":1024,
"HDD":40,
"IP":"5.200.XX.XX",
"AdminUserName":"1CloudAdmin",
"AdminPassword":"XXXXXXXX",
"Image":"WinServer2008R2x64En",
"IsHighPerformance":false,
"HDDType":"SAS",
"LinkedNetworks":[{"NetworkID":57, "IP":"10.0.1.1"}, {"NetworkID":98, "IP":"10.0.2.4"}]
}
Пример для создания шаблона виртуального сервера (POST-запрос по адресу api.1cloud.ru/image):
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/image" -d '{"Name":"Шаблон","TechName":"TemplateAPI","ServerID":6940}'
Еще один пример — создание частной сети (POST-запрос):
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer 75bb9805c018b1267b2cf599a38b95a3a811e2ef7ad9ca5ed838ea4c6bafaf50' "https://api.1cloud.ru/network" -d '{"Name":"testNetworkAPI"}'
P.S. Для аудитории Хабрахабра мы предоставляем расширенный тестовый период, в ходе которого мы готовы оказать поддержку всем пользователям (для его активации достаточно написать нам на адрес support@1cloud.ru).