Распространённые проблемы
Распространённые проблемыРепликация обновлений пути GraphQL-эндпоинта через хуки

Репликация обновлений пути GraphQL-эндпоинта через хуки

Если вы столкнулись с определёнными проблемами, например:

…и вы выполнили одно из следующих действий в Gato GraphQL:

  • Обновили путь GraphQL Single Endpoint
  • Обновили базовый слаг Custom Endpoints или Persisted Queries
  • Отключили какой-либо эндпоинт (отключив соответствующий модуль),

…то вы должны применить то же самое изменение через хук, чтобы избежать конфликта.

Хуки

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

  • gatographql:before_app_is_loaded:graphql_endpoint_paths

Аналогично, если вы отключаете какой-либо модуль публичного эндпоинта, необходимо удалить соответствующий путь через хук.

Примеры

Если вы изменили путь Single Endpoint с graphql на api/graphql в настройках плагина:

add_filter(
  'gatographql:before_app_is_loaded:graphql_endpoint_paths',
  function(array $endpointPaths): array {
    // Replace the default 'graphql' path with your custom path
    return array_map(
      fn ($path) => $path === 'graphql' ? 'api/graphql' : $path,
      $endpointPaths
    );
  }
);

Если вы отключили модуль Single Endpoint:

add_filter(
  'gatographql:before_app_is_loaded:graphql_endpoint_paths',
  function(array $endpointPaths): array {
    // Remove the 'graphql' path since the module is disabled
    return array_filter(
      $endpointPaths,
      fn ($path) => $path !== 'graphql',
    );
  }
);