Работа с GraphQL
8 800 555-89-02
Войти
infomaximum_logoДокументация
CTRL+K
Standalone2509
LTS
SaaS

Работа с GraphQLLTS

В этой статье

Описание GraphQL

В качестве API система Proceset использует технологию GraphQL. GraphQL — это язык запросов для API с открытым исходным кодом, который обеспечивает более эффективную и гибкую альтернативу классическому REST. В то время как типичные API REST требуют загрузки с нескольких URL-адресов, API GraphQL позволяет получить необходимые данные в одном запросе.

Для создания и выполнения GraphQL-запросов можно использовать встроенную браузерную IDE (интегрированную среду разработки) GraphiQL. Чтобы получить к ней доступ, перейдите на страницу системы и в адресной строке введите адрес_системы/graphiql.

Вход в GraphiQL

Когда вы редактируете запрос во встроенной IDE, URL-адрес также обновляется. При этом сохраняются пробелы, комментарии и неверные запросы. Вы можете пересылать URL-ссылки другим коллегам.

Обновление URL-адреса

GraphQL-запросы являются интерактивными. Это означает, что вы можете изменить запрос и увидеть новый результат.

GraphQL API поддерживает автогенерацию документации. Документация всегда в актуальном состоянии. Для ее просмотра откройте вкладку Docs (находится в правом верхнем углу) на странице встроенной IDE. В этом разделе представлены все запросы, которые можно выполнить в Proceset.

Встроенная документация

GraphQL-запросы в системе разделены по типу на три группы:

  • query
  • mutation
  • subscription

Выберите нужную группу и найдите интересующий запрос.

Поиск запроса

В описании каждого запроса представлены список полей и их типы данных.

Поля и типы данных

С дополнительной информацией по работе с GraphQL можно ознакомиться на официальном сайте.

Описание способов аутентификации и способов работы с GraphiQL

Для более удобного формирования и выполнения запросов в систему включена встроенная IDE GraphiQL. Чтобы ее использовать:

  1. Авторизуйтесь в Proceset.
  2. Перейдите по адресу: адрес_системы/graphiql.

Для выполнения запроса из внешней системы необходимо подготовить ключ API для аутентификации в разделе «Настройки» / «Ключи API». Для подключения внешних систем возможны два режима аутентификации через ключи API:

  • стандартный ключ API представляет собой последовательность символов, которую должна будет предъявлять внешняя система для аутентификации
  • SSL-сертификат. Внешняя система для аутентификации сначала предоставляет API-ключ, затем происходит взаимная аутентификация систем на основе SSL-сертификатов

Создание нового API ключа

Назначьте привилегии созданному ключу API. Подробнее о настройке привилегий ключам API см. Права доступа для ключей API.

Настройка привилегий API ключа

Запрос от имени ключа API

Чтобы GraphQL-запрос был от имени ключа API, необходимо в адресной строке ввести ключ. Пример: https://automation-dev.preview.infomaximum.com/graphql?api_key=ключ

Примеры запросов GraphQL

Далее приведены некоторые GraphQL-запросы, которые могут быть использованы в системе.

Получение рабочего пространства

Запрос:

{ 
    workspace { 
        workspace (id: 273) { 
            id 
            name 
        } 
    } 
} 

Ответ:

{ 
    "data": { 
        "workspace": { 
            "workspace": { 
            "id": 273, 
            "name": "test"
            } 
        } 
    } 
} 
ПолеОпределение
workspaceРабочее пространство
idИдентификатор рабочего пространства
nameНазвание рабочего пространства

Создание сотрудника

Запрос:

mutation { 
    employee { 
        create ( 
            login: "test"
            first_name: "Ivan"
            second_name: "Ivanov" 
            language: RUSSIAN 
            phone_numbers: "12345678901" 
        ){ 
            id 
            login 
            first_name 
            second_name 
            language 
            phone_numbers 
        } 
    } 
} 

Ответ:

{ 
    "data": { 
        "employee": { 
            "create" { 
                "id": 244, 
                "login": "test", 
                "first_name": "Ivan", 
                "second_name": "Smirnov", 
                "language": "RUSSIAN", 
                "phone_numbers": [ 
                    "12345678901" 
                ] 
            } 
        } 
    } 
} 
ПолеОпределение
employeeСотрудник
createСоздать
idИдентификатор сотрудника
loginЛогин сотрудника
first_nameИмя сотрудника
second_nameФамилия сотрудника
languageЯзык сотрудника
phone_numbersНомер телефона сотрудника

Получение сотрудников с конкретной ролью доступа

Запрос:

{
    access_role {
        access_role (id:171) {
            employees {
                items {
                    id
                    first_name
                    second_name
                }
            }
        }
    }
}

Ответ:

{
  "data": {
    "access_role": {
      "access_role": {
        "employees": {
          "items": [
            {
              "id": 82,
              "first_name": "Алексей",
              "second_name": "Смирнов"
            },
            {
              "id": 142,
              "first_name": "Анна",
              "second_name": "Демидова"
            },
            {
              "id": 143,
              "first_name": "Вероника",
              "second_name": "Свердлова"
            },
            {
              "id": 141,
              "first_name": "Дмитрий",
              "second_name": "Аксенов"
            }
          ]
        }
      }
    }
  }
}
ПолеОпределение
access_roleРоль доступа
employeesСотрудники
itemsЭлементы
idИдентификатор сотрудника
first_nameИмя сотрудника
second_nameФамилия сотрудника

Получение GUID скрипта и ID пространства

Для запуска скрипта требуются его GUID и ID рабочего пространства. Чтобы получить их, выполните запрос:

{
  automation {
    script {
      script_general(id: <id_скрипта>) {
        id
        guid
        workspace {
          id
        }
      }
    }
  }
}

Ответ:

{
  "data": {
    "automation": {
      "script": {
        "script_general": {
          "id": 20001,
          "guid": "1234567a-1234-567b-234c-123456789abc",
          "workspace": {
            "id": 5001
          }
        }
      }
    }
  }
}
ПолеОпределение
automationМодуль «Автоматизация»
scriptПрофиль скрипта
script_generalОсновная информация
idИдентификатор скрипта
guidGUID скрипта
workspace_idИдентификатор рабочего пространства

Запуск скрипта

Запрос:

mutation {
    automation {
        script {
            execute_by_guid (
                guid:"1234567a-1234-567b-234c-123456789abc"
                workspace_id: 5001
            ){
                guid
            }
        }
    }
}

Ответ:

{
    "data": {
        "automation": {
            "script": {
                "execute_by_guid": {
                    "guid": "1234567a-1234-567b-234c-123456789abc"
                }
            }
        }
    }
}
ПолеОпределение
automationМодуль «Автоматизация»
scriptВыполнение скрипта
execute_by_guidЗапуск скрипта по GUID
guidGUID скрипта
workspace_idИдентификатор рабочего пространства

Была ли статья полезна?

Да
Нет
Предыдущая
Роли доступа

Дайджест новостей и обновлений —

один раз в месяц

Заполняя форму, я даю согласие на обработку моих персональных данных
infomaximum_logo_icon
430006, Саранск,
Северо-восточное шоссе, д. 3
ОКВЭД 62.01
ИНН 1328​909857
Код вида деятельности
в области ИТ 15.02 и 17.01
Языки программирования
Мы используем файлы cookies, чтобы сайт был лучше для вас.
Ищете ответ? Наш чат‑бот с ИИ понимает контекст документации и предлагает самые точные результаты.
infomaximum_logo