Работа с API
Общая информация
API URL
Для доступа к API используйте URL вида https://example.com/api/service/api_version/function/.
Методы HTTP-запросов
DCImanager 6 поддерживает методы GET, POST и DELETE.
Параметры POST-запроса
Чтобы передать параметры для POST-запроса, укажите их в теле запроса в формате JSON.
Формат ответа
Ответ на API-запросы приходит в виде JSON-объектов, например:
Сообщение об ошибке в JSON
Как обрабатывать код 503
Если сервис платформы длительное время неактивен, то он может быть приостановлен. В этом случае API-запросы завершаются с кодом 503. Повторяйте запросы, пока в ответ не будет получен другой код:
Пример реализации на Python 3
Способы авторизации
Доступность функций по API делится на 3 уровня:
- публичные функции — можно вызвать без авторизации;
- функции пользователя — можно вызвать с уровнем доступа "Пользователь";
- функции администратора — можно вызвать с уровнем доступа "Администратор".
Для проверки текущего уровня доступа DCImanager 6 ищет в HTTP-заголовке параметр x-xsrf-token и cookie-файл с именем ses6. В них должен содержаться токен авторизации для текущей сессии пользователя. Чтобы получить токен, используйте авторизацию по логину и паролю или по одноразовому ключу.
Обратите внимание!
Если вы выполняете запрос локально на сервере с платформой, добавьте к запросу HTTP-заголовок со значением isp-box-instance: true.
Авторизация по логину и паролю
Отправьте POST-запрос на URL вида https://example.com/auth/v4/public/token.
Тело запроса в JSON
CODEИспользование в curl
CODEОбработайте ответ. Он может содержать сообщение об ошибке, либо JSON вида:
Ответ в JSON
CODEИспользуйте значение токена в заголовке HTTP-запроса, например:
Использование в curl
CODEВ случае ошибки будет получено сообщение вида:
Ошибка при авторизации
CODE
Если в течение 60 минут токен авторизации не использовался, он будет удалён. Чтобы получить токен с нужным временем жизни, отправьте POST-запрос на URL вида https://example.com/auth/v4/token:
Тело запроса в JSON
Ответ будет содержать новый токен с заданным сроком действия.
Использование в curl
Изменение времени жизни токена и сессии
По умолчанию время жизни токена и сессии — 60 минут. Чтобы изменить этот параметр, отправьте POST-запрос на URL вида https://example.com/auth/v4/setting/token_ttl:
Тело запроса в JSON
Использование в curl
Сквозная авторизация по ключу
DCImanager 6 поддерживает сквозную авторизацию пользователя с использованием логина и пароля администратора. Например, её можно использовать для авторизованного перехода из биллинговой системы в DCImanager 6 или предоставления временного доступа пользователя к платформе. Время действия такого ключа — один час.
Отправьте POST-запрос на URL вида https://example.com/auth/v4/public/token.
Тело запроса в JSON
CODEИспользование в curl
CODEОбработайте ответ. Он может содержать сообщение об ошибке, либо JSON вида:
Ответ в JSON
CODEОтправьте POST-запрос для создания ключа:
Создать ключ для авторизации
CODEВ ответ будет получен JSON-объект вида:
Ответ в JSON
CODEОбратите внимание!
По этому ключу вы можете предоставить пользователю временный доступ к платформе. Для авторизации пользователю нужно открыть ссылку вида https://example.com/auth/key-v4/<key>
Чтобы получить значение токена по временному ключу, отправьте POST-запрос:
Получить значение токена по ключу
CODEВ ответ будет получен JSON-объект вида:
Ответ в JSON
CODEИспользуйте значение токена в заголовке HTTP-запроса, например:
Использование в curl
CODEВ случае ошибки будет получено сообщение вида:
Ошибка при авторизации
CODE