Files
autotest/DOCS/api-access.md
T

3.3 KiB

Обращение к API облака

Базовые URL

Стенд URL
dev https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc
test https://lk-api-gateway-test.ngcloud.ru/api/v1/svc
prod https://lk-api-gateway.ngcloud.ru/api/v1/svc

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

Bearer-токен в заголовке: Authorization: Bearer <TOKEN>

Токены лежат в secrets/:

  • secrets/dev.token
  • secrets/test.token
  • secrets/prod.token

⚠️ ОБЯЗАТЕЛЬНО: User-Agent

Без User-Agent: Mozilla/5.0 вернёт Forbidden! DDoS-Guard блокирует curl по умолчанию.

Примеры curl

URL="https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
TOKEN=$(tr -d '\n' < secrets/dev.token)
UA="Mozilla/5.0"

# Список сервисов
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/services | jq '.results[] | {svcId, svc}'

# Детали сервиса (все операции)
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/services/90 | jq '.svc.operations[] | {svcOperationId, operation}'

# Полные параметры операции (valueList, dataDescriptor, isModifiable)
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/instanceOperations/default/19 | jq '.svcOperation.cfsParams[]'

Получение параметров сервиса (как в YAML-генераторе)

3 шага:

URL="https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc"
TOKEN=$(tr -d '\n' < secrets/dev.token)
UA="Mozilla/5.0"

# Шаг 1: найти svcId по имени
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/services | jq '.results[] | select(.svc == "PostgreSQL") | .svcId'

# Шаг 2: найти svcOperationId для операции "create"
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/services/90 | jq '.svc.operations[] | select(.operation == "create") | .svcOperationId'

# Шаг 3: получить параметры (с valueList, dataDescriptor)
curl -s --max-time 10 -H "Authorization: Bearer $TOKEN" -H "User-Agent: $UA" $URL/instanceOperations/default/19 | jq '.svcOperation.cfsParams[]'

Ключевые эндпоинты

Метод Путь Назначение
GET /services Список сервисов
GET /services/{svcId} Детали + операции
GET /instances Инстансы пользователя
GET /instanceOperations/default/{svcOperationId} Полные параметры (valueList, dataDescriptor, isModifiable)
POST /instances Создать инстанс
POST /instanceOperations Запустить операцию

⚠️ Важно

  • /instanceOperations/default/{id} даёт полные параметры (valueList, dataDescriptor, isModifiable)
  • /serviceOperation/{id} даёт базовые параметры (без valueList и dataDescriptor) — НЕ использовать
  • Все параметры --max-time 10 обязательны — чтобы не висло
  • Токен без переносов строк: tr -d '\n'