Описание GraphQL Playground

Описание «GraphQL Playground»


GraphQL Playground (далее Панель) позволяет совершать запросы, получать ответы от GraphQL-сервера и просматривать автоматически сгенерированную документацию API.

1. Вход в GraphQL Playground

Для входа в Панель вам нужно:

1. Авторизоваться в console.ps.kz;

2. Ввести в браузерной строке: https://console.ps.kz/ НАЗВАНИЕ СЕРВИСА /graphql,

где НАЗВАНИЕ СЕРВИСА

  • Аккаунт: account
  • Домены: domains
  • Облачные серверы: cloud
  • Облачные базы данных: dbaas
  • Кластеры Kubernetes: k8saas
  • Балансировщики нагрузки: lbaas
  • Облачные VPS: vps


2. Просмотр документации

В разделе DOCS описаны эндпоинты, типизация переменных и структура запросов. 

Для просмотра документации:

  1. В правой части Панели нажмите на DOCS
  2. Откроется боковое меню с описанием запросов:
  • Query (запросы на чтение данных, аналог GET в REST)
  • Mutation (запросы на изменение данных, аналог POST и PUT в REST)
  • Subscriptions (подписки на оповещения о событиях)


3. Написание запросов

В левой части Панели можно протестировать запросы и мутации на GraphQL. Начните с ключевого слова (query или mutation), затем укажите название запроса, его поля и аргументы.


Пример Query-запроса данных о сервере в сервисе «Облачные серверы»:


query {
  vpc {
    instance {
      pagination(perPage: 1000, filter: { serviceId: "13745", status: ACTIVE }) {
        items {
          instanceName
          floatingipsArray
          ram
          cores
        }
      }
    }
  }
}


где

query - определение запроса к серверу GraphQL на чтение данных;

vpc - узел запроса к сервису «Облачные серверы»;

instance - подузел запроса к списку экземпляров (instances), используемых в вашем проекте;

pagination - метод отражения результатов запроса (например, отражение на странице не более 1000 элементов);

filter - аргумент фильтрации результатов (например, фильтрация экземпляров по идентификатору проекта и статусу экземпляра);

serviceId - значение фильтрации экземпляров по идентификатору проекта (пятизначный идентификатор указан в Консоли, справа от названия проекта);

status - значение фильтрации экземпляров по текущему статусу (например, только активные);

items - поля, запрашиваемые у каждого экземпляра:

  • instanceName - название экземпляра;
  • floatingipsArray - список плавающих IP-адресов; 
  • ram - объем оперативной памяти (RAM);
  • cores - количество ядер процессора.


Чтобы выполнить запрос, нажмите кнопку Play или используйте комбинацию клавиш Ctrl + Enter на Windows / Linux или Cmd + Enter на Mac.

Результаты запроса будут отображены справа.

Рисунок 2. Интерфейс GraphQL Playground с примером Query-запроса


Пример Mutation-запроса по изменению конфигурации сервера в сервисе «Облачные серверы»:


mutation {
  vpc {
    instance {
      resizeInstance(
        input: {
          flavorId: "1517fe16-592c-4938-9bb6-d5ec5593041a"
          serviceId: "13745"
          instanceId: "aeaeda28-6ae3-4895-9120-5f46af358cc0"
          regionId: "kz-ala-1"
        }
      ) {
        instance {
          instanceName
          flavor {
            ram
            vcpus
          }
          regionId
        }
      }
    }
  }
}


где

mutation - определение запроса к серверу GraphQL на изменение данных;

vpc - узел запроса к сервису «Облачные серверы»;

instance - подузел запроса к списку экземпляров (instances), используемых в вашем проекте;

resizeInstance - операция изменения конфигурации экземпляра;

input - определение экземпляра для изменения его конфигурации:

  • flavorId - идентификатор новой конфигурации;
  • serviceId - идентификатор проекта;
  • instanceId - идентификатор экземпляра;
  • regionId - идентификатор региона.

Ниже указываем, какие данные нам нужно получить для подтверждения изменения конфигурации:

  • instanceName - название экземпляра;
  • flavor - информация о конфигурации;
  • ram - объем оперативной памяти;
  • vcpus - количество процессоров;
  • regionId - идентификатор региона.


Рисунок 2. Интерфейс GraphQL Playground с примером Mutation-запроса

question
Не нашли подходящего ответа?
Напишите запрос в службу поддержки
Написать сейчас