Пользовательские конечные точки
Пользовательские конечные точкиПользовательские эндпоинты

Пользовательские эндпоинты

Included in the “Power Extensions” bundle

Создавайте пользовательские схемы с индивидуальными правилами доступа для разных пользователей, каждая из которых доступна по собственному эндпоинту.

Описание

GraphQL-сервер обычно предоставляет единственный эндпоинт для получения и отправки данных.

Помимо поддержки единого эндпоинта, Gato GraphQL также позволяет создавать пользовательские эндпоинты, предоставляя различные конфигурации схемы для удовлетворения потребностей разных целевых аудиторий, например:

  • Конкретный клиент или пользователь
  • Группа пользователей с расширенным доступом к функциям (например, PRO-пользователи)
  • Одно из нескольких приложений — мобильное приложение или веб-сайт
  • Сторонние API
  • Любой другой случай

Пользовательский эндпоинт — это Custom Post Type, а его permalink является адресом эндпоинта. Эндпоинт с заголовком "My endpoint" и слагом my-endpoint будет доступен по адресу /graphql/my-endpoint/.

Редактор пользовательского эндпоинта

Клиенты

Каждый пользовательский эндпоинт имеет собственный набор клиентов для взаимодействия:

Клиент GraphiQL, доступный по адресу эндпоинта + ?view=graphiql (например: /graphql/my-endpoint/?view=graphiql).

Модуль GraphiQL для пользовательских эндпоинтов должен быть включён.

Клиент GraphiQL пользовательского эндпоинта

Клиент интерактивной схемы, доступный по адресу эндпоинта + ?view=schema (например: /graphql/my-endpoint/?view=schema).

Модуль Interactive Schema для пользовательских эндпоинтов должен быть включён.

Интерактивная схема пользовательского эндпоинта

Создание пользовательского эндпоинта

При нажатии на ссылку «Пользовательские эндпоинты» в меню отображается список всех созданных пользовательских эндпоинтов:

Пользовательские эндпоинты в панели администратора
Пользовательские эндпоинты в панели администратора

Пользовательский эндпоинт — это custom post type (CPT). Чтобы создать новый пользовательский эндпоинт, нажмите кнопку «Добавить новый GraphQL-эндпоинт», которая откроет редактор WordPress:

Создание нового пользовательского эндпоинта

Когда пользовательский эндпоинт готов, опубликуйте его — его permalink станет URL эндпоинта. Ссылки на эндпоинт (а также на источник и клиенты) отображаются на боковой панели «Обзор пользовательского эндпоинта»:

Обзор пользовательского эндпоинта

Добавив ?view=source к permalink, можно увидеть конфигурацию эндпоинта (при условии, что пользователь вошёл в систему и его роль имеет соответствующий доступ):

Источник пользовательского эндпоинта

По умолчанию пользовательский эндпоинт имеет путь /graphql/, и это значение можно изменить через Настройки:

Настройки пользовательского эндпоинта
Настройки пользовательского эндпоинта

Конфигурация схемы

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

Поэтому необходимо создать конфигурацию схемы, а затем выбрать её из выпадающего списка:

Выбор конфигурации схемы

Организация пользовательских эндпоинтов по категориям

На боковой панели «Категории эндпоинтов» можно добавлять категории для удобного управления пользовательским эндпоинтом:

Категории эндпоинтов при редактировании пользовательского эндпоинта

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

Список категорий эндпоинтов

В списке пользовательских эндпоинтов можно видеть их категории; нажав на ссылку любой категории или воспользовавшись фильтром вверху, отобразятся только записи этой категории:

Список пользовательских эндпоинтов с категориями

Фильтрация пользовательских эндпоинтов по категории

Приватные эндпоинты

Установив статус пользовательского эндпоинта как private, можно ограничить доступ к нему только для администратора. Это предотвращает непреднамеренный доступ к данным со стороны пользователей, которым он не предназначен.

Например, можно создавать приватные пользовательские эндпоинты для управления приложением — в частности, для получения данных и формирования отчётов с нашими метриками.

Приватный пользовательский эндпоинт

Эндпоинты, защищённые паролем

Если создаётся пользовательский эндпоинт для конкретного клиента, ему можно назначить пароль, чтобы обеспечить дополнительный уровень защиты и гарантировать, что только этот клиент получит доступ к эндпоинту.

Пользовательский эндпоинт, защищённый паролем

При первом обращении к эндпоинту, защищённому паролем (будь то прямой доступ к эндпоинту или к его клиентам GraphiQL или Interactive Schema), пользователь видит экран с запросом пароля:

Пользовательский эндпоинт, защищённый паролем: первый доступ

После ввода и проверки пароля пользователь получает доступ к нужному эндпоинту или клиенту:

Пользовательский эндпоинт, защищённый паролем: после авторизации