Как работает API нашего IaaS-провайдера

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


    / фото Rachel Johnson CC

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

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

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


    Авторизация приложения для работы с API происходит с помощью вставки в заголовок запроса токена (закрытого ключа), данная схема безопасна, т.к. используется SSL-шифрование. Токен можно сгенерировать в панели управления (на скриншоте выше).

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

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

    В рамках работы с сервером возможно осуществлять такие действия как: получение списка всех серверов; поиск сервера по его идентификатору; изменение настроек и удаление сервера.

    Существует несколько реализаций клиентских приложений для нашего API.





    Пример самого распространенного действия — создания нового сервера:

    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).
    • +11
    • 6.3k
    • 4
    1cloud.ru
    350.56
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Share post

    Comments 4

      +1
      Мне кажется большинство таких постов уйдут в прошлое тогда, когда компании начнут использовать swagger для описания своих REST API. А из него и документацию можно сгенерить, и клиентов на разных языках, и просто фронтэнд чтобы поиграть с вызовами. Swagger это прекрасный аналог WSDL для RESTful api

      У вас есть?
        0
        Знакомое приложение, да. Но нет, мы в данный момент ее не используем. Впрочем, спасибо за предложение, вполне вероятно, что в следующих версиях предоставим и данную возможность.
          +1
          Это не совсем приложение, это довольно популярный формат описания api, который позволяет автоматически генерировать запросы в правильном формате. Посмотрите swagger.io
          Например на .NET для генерации интерфейса типа вот такого petstore.swagger.io к WebAPI нужно просто добавить пакет swashbuckle, и все.
          Для генерации клиента к чужому api который имеет описание в формате swagger — вызвать утилиту autorest с парой параметров — и она сгенерирует строго типизированные классы и методы на C#.

          Если пользовались раньше WSDL — это все то же самое только без SOAP & XML, и все кросс-платформенно для REST API

          Помимо этих плюшек, большое количество приложений и сервисов поддерживают Swagger, например PostMan, Runscope и другие…
            0
            Спасибо! Обязательно изучим подробнее

      Only users with full accounts can post comments. Log in, please.