よくある問題
よくある問題フックを使った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',
    );
  }
);