API (Application programming interface) — это свод способов, правил, функций, с помощью которых можно выполнять ту или иную часть кода. Когда мы вызываем какую-то из функций API-запроса, то отдаем на входе одни данные и в ответ на него на выходе получаем другие. Это может быть внесенное изменение в программу или получение списка данных.
С помощью API можно выполнять рутинные операции, получать данные, хранимые в программах, или вносить в них изменения. Также можно использовать API для интеграций, написания скриптов, внесения массовых изменений и многого другого.
У продуктов экосистемы ISPsystem интерфейс API представлен в открытом виде. Вы можете управлять через API или настраивать интеграцию под свои задачи в BILLmanager, VMmanager, DCImanager, IPmanager, DNSmanager.
В этой статье мы расскажем о возможностях API в рамках наших продуктов.
API в продуктах ISPsystem и полезные ссылки
Для продуктов, у которых фреймворком является COREmanager — таких, как BILLmanager, DNSmanager, IPmanager, а также всего пятого поколения остальных платформ, — на нашем сайте есть схема работы с API и документация. Там описаны методы авторизации, форматы вывода данных, информация о том, как работать с нашим API, используя языки программирования Python, PHP, perl, а также много другой полезной информации.
Чтобы упростить написание скриптов на bash, можно воспользоваться утилитой mgrctl. С ее помощью можно вызвать необходимую API-функцию прямо из командной строки. Подробную информацию о ее использовании и примеры простых скриптов есть на нашем сайте в разделе документации.
Для данных продуктов есть возможность составления API-запросов через лог, как это сделать — также описано в документации.
Теперь посмотрим, как работать с API в актуальных версиях других продуктов экосистемы ISPsystem.
Несколько разделов документации мы посвятили VMmanager 6:
Описание принципов работы.
Примеры использования.
Инструкция по работе с Swagger — набором инструментов для спецификации и автоматического описания API на основе его кода.
Аналогичные разделы есть и для DCImanager 6:
Описание работы.
Примеры использования.
Но чтобы эффективно использовать API в шестом поколении платформ VMmanager и DCImanager, потребуется более детально изучить HTTP-протокол и методы.
HTTP-протокол и его методы. Форматы данных
HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) — это набор правил прикладного уровня для передачи данных. Чаще всего в передаче данных по протоколу HTTP участвует Клиент (тот, кто отправляет запрос) и Сервер (тот, кто отправляет ответ). В некоторых случаях появляется третий участник — Прокси-сервер в качестве посредника.
Чтобы сделать типовой запрос по HTTP, потребуется указать:
- URL (домен, адрес сервера).
- Метод (тип запроса или, по-другому, действие, которое необходимо выполнить).
- Список заголовков (характеризуют тело сообщения, то есть параметры, которые передаются).
- Тело (сами значения параметров, необходимые для передачи).
Подробную информацию о HTTP можно найти
VMmanager 6 и DCImanager 6 поддерживают методы GET, POST и DELETE:
- Метод Get используется для запроса содержимого указанного ресурса.
- Метод POST применяется для передачи пользовательских данных заданному ресурсу.
- Метод DELETE удаляет указанный ресурс.
Для продуктов с фреймворком COREmanager используются только методы GET и POST.
Передача запроса методом POST осуществляется в формате
Результат, полученный после выполнения функции с продуктами на COREmanager, может быть в формате XML, текстовом формате, а также JSON. Чтобы задать формат, в котором вы желаете получить данные, необходимо указать параметр out=имя_формата.
Возможные значения параметра out:
- xml — данные будут возвращены в формате XML (данные отдаются без пагинации и фильтра);
- devel — то же самое, что XML, но в документе будут присутствовать данные, описывающие интерфейс пользователя (полезно для отладки своих плагинов);
- text — данные в текстовом формате (отдаются без пагинации и фильтра);
- sjson — данные в формате JSON;
- json — то же самое, что и sjson, только Pretty Print (полезно для отладки);
- JSONdata — то же самое, что и JSON, но без описаний интерфейса, только данные (отдаются без пагинации и фильтра);
- xjson — аналогично дефолтному формату вывода (html) только в формате JSON (рекомендуется для создания своих тем оформления);
- print — html, пригодный для печати, работает только для списков данных;
- xxxx — вы можете создать свой собственный формат вывода, если вас не устраивает ни один из предыдущих.
Если параметр out отсутствует, то считается, что данные предназначены для браузера и они преобразуются в html.
Продукты шестой версии могут передавать ответ только в формате JSON.
Преимущества API
API — это серьезный и мощный инструмент, не требующий глубоких знаний в программировании, который помогает решать повседневные задачи, автоматизируя их.
Также API легко интегрируется в ваш код на любом языке программирования. А API-запрос может быть использован как самостоятельная единица.
Свод самих функций и их параметров (значений, которые можно передавать на входе) у каждой платформы свой. Изучив документацию, можно настраивать интеграции между различными продуктами и программным обеспечением, а также написать различные запросы для получения необходимых данных.