Настройка плагина
Настройка плагинаВключение низкоуровневого редактирования persisted queries

Включение низкоуровневого редактирования persisted queries

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

Существует 2 типа директив: те, что применяются к схеме и выполняются всегда при каждом запросе; и те, что применяются к запросу пользователем или приложением на стороне клиента.

Gato GraphQL реализует большой объём функциональности через директивы, применяемые к схеме. Соответствующие директивы добавляются в запрос через пользовательский интерфейс.

Именно так, например, работают Cache Control и Access Control. Cache Control функционирует путём применения директивы @cacheControl к схеме и управляется плагином через интерфейс Cache Control List:

Определение политики cache control

Некоторые примеры директив типа «схема», регулирующих Access Control:

  • @disableAccess
  • @validateIsUserLoggedIn
  • @validateIsUserNotLoggedIn
  • @validateDoesLoggedInUserHaveAnyRole.
  • @validateDoesLoggedInUserHaveAnyCapability

Включение низкоуровневого редактирования

Модуль «Low-Level Persisted Query Editing» отключён по умолчанию. При включении все директивы, применяемые к схеме, становятся доступны в редакторе GraphiQL при редактировании persisted queries.

Директивы типа «схема»

Таким образом, можно добавлять директивы типа «схема» непосредственно в GraphQL-запрос при редактировании persisted query, минуя пользовательский интерфейс.

Например, Cache Control можно настроить прямо в persisted query, задав директиву @cacheControl с аргументом maxAge для нужного поля:

Директивы типа «схема», доступные в редакторе Persisted queries