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