16 февраля 2023 Время чтения: 5 минут

Возможности API в продуктах ISPsystem

ISPSystem

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, потребуется указать:

  1. URL (домен, адрес сервера).
  2. Метод (тип запроса или, по-другому, действие, которое необходимо выполнить).
  3. Список заголовков (характеризуют тело сообщения, то есть параметры, которые передаются).
  4. Тело (сами значения параметров, необходимые для передачи).

Подробную информацию о HTTP можно найти в статье на Википедии.

VMmanager 6 и DCImanager 6 поддерживают методы GET, POST и DELETE:

  • Метод Get используется для запроса содержимого указанного ресурса.
  • Метод POST применяется для передачи пользовательских данных заданному ресурсу.
  • Метод DELETE удаляет указанный ресурс.

Для продуктов с фреймворком COREmanager используются только методы GET и POST.

Передача запроса методом POST осуществляется в формате JSON (JavaScript Object Notation, нотация объектов JavaScript), который состоит из ключа и значения.

Результат, полученный после выполнения функции с продуктами на 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-запрос может быть использован как самостоятельная единица.

Свод самих функций и их параметров (значений, которые можно передавать на входе) у каждой платформы свой. Изучив документацию, можно настраивать интеграции между различными продуктами и программным обеспечением, а также написать различные запросы для получения необходимых данных.