Skip to content

👨‍💻 Разработчикам

Введение

API LeeCyber позволяет вам управлять ресурсами в облаке программным способом с использованием обычных HTTP-запросов.

Множество функций, которые доступны в Dashboard, также доступны через API, что позволяет вам автоматизировать ваши собственные сценарии.

В этой документации сперва будет описан общий дизайн и принципы работы API, а после этого конкретные конечные точки. Также будут приведены примеры запросов к ним.

⚠️ Поддержка API v1 прекращена
Для запросов используйте протокол v2.

Запросы

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

МетодПрименение
GETИзвлекает данные о коллекциях и отдельных ресурсах.
POSTДля коллекций создает новый ресурс этого типа. Также используется для выполнения действий с конкретным ресурсом.
PUTОбновляет существующий ресурс.
PATCHНекоторые ресурсы поддерживают частичное обновление, то есть обновление только части атрибутов ресурса, в этом случае вместо метода PUT будет использован PATCH.
DELETEУдаляет ресурс.

Методы POST, PUT и PATCH могут включать объект в тело запроса с типом содержимого application/json.

Параметры в запросах

Некоторые коллекции поддерживают пагинацию, поиск или сортировку в запросах. В параметрах запроса требуется передать:

  • limit — обозначает количество записей, которое необходимо вернуть
  • offset — указывает на смещение, относительно начала списка
  • search — позволяет указать набор символов для поиска
  • sort — можно задать правило сортировки коллекции

Ответы

Запросы вернут один из следующих кодов состояния ответа HTTP:

СтатусОписание
200 OKДействие с ресурсом было выполнено успешно.
201 CreatedРесурс был успешно создан. При этом ресурс может быть как уже готовым к использованию, так и находиться в процессе запуска.
204 No ContentДействие с ресурсом было выполнено успешно, и ответ не содержит дополнительной информации в теле.
400 Bad RequestБыл отправлен неверный запрос, например, в нем отсутствуют обязательные параметры и т. д. Тело ответа будет содержать дополнительную информацию об ошибке.
401 UnauthorizedОшибка аутентификации.
403 ForbiddenАутентификация прошла успешно, но недостаточно прав для выполнения действия.
404 Not FoundЗапрашиваемый ресурс не найден.
409 ConflictЗапрос конфликтует с текущим состоянием.
423 LockedРесурс из запроса заблокирован от применения к нему указанного метода.
429 Too Many RequestsБыл достигнут лимит по количеству запросов в единицу времени.
500 Internal Server ErrorПри выполнении запроса произошла какая-то внутренняя ошибка. Чтобы решить эту проблему, лучше всего создать тикет в панели управления.

Ограничение скорости запросов (Rate Limiting)

Чтобы обеспечить стабильность для всех пользователей, LeeCyber защищает API от всплесков входящего трафика, анализируя количество запросов c каждого аккаунта к каждой конечной точке.

Если ваше приложение отправляет более 20 запросов в секунду на одну конечную точку, то для этого запроса API может вернуть код состояния HTTP 429 Too Many Requests.

Аутентификация

Доступ к API осуществляется с помощью JWT-токена.

Токен необходимо передавать в заголовке каждого запроса в формате:

Authorization: Bearer $LEECYBER_TOKEN

Чтобы использовать приведенные примеры, не подставляя каждый раз в них свой токен, вы можете добавить токен один раз в переменные окружения в вашей консоли. Например, на Linux это можно сделать с помощью команды:

LEECYBER_TOKEN="token"

После этого токен будет автоматически подставляться в ваши запросы.

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

Версионирование

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

Мажорная версия каждой конечной точки обозначается в пути запроса, например, запрос /v2/user указывает, что этот метод имеет версию 1.

Отправка запросов

Отправляйте запросы на api.leecyber.com, с указанием мажорной версии конечной точки запроса.

Пример: https://api.leecyber.com/v2/user/auth

Авторизация и получение токена

POST /v2/user/auth

Получение API токена с помощью логина и пароля от аккаунта.

Headers

NameValue
Content-Typeapplication/json

Body

NameTypeDescription
usernamestringИмя пользователя
passwordstringПароль

Response

json
{
    "status": "Authorized",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MCwiZW1haWwiOiJ0ZXN0IiwiaWF0IjoxNzEwNjY0MTU5LCJleHAiOjE3MTE5NjAxNTl9.mc48ZZhx7z2OvYX-DehnDOwCf6ayKX0hoc3NtquPU-o"
}