拡張機能
Internal GraphQL Server
PHPコードを使用して、アプリケーション内部から直接GraphQLクエリを実行します。

この拡張機能は内部GraphQLサーバーをインストールします。このサーバーはPHPコードを使用して、アプリケーション内部から呼び出すことができます。
内部GraphQLサーバーには、クラス GatoGraphQL\InternalGraphQLServer\GraphQLServer を通じて、以下の3つのメソッドでアクセスします:
executeQuery: GraphQLクエリを実行するexecuteQueryInFile: (.gql) ファイルに含まれるGraphQLクエリを実行するexecutePersistedQuery: 保存されたGraphQLクエリを実行する(IDを整数で、またはスラグを文字列で指定)(Persisted Queries 拡張機能が必要)
メソッドのシグネチャは以下のとおりです:
namespace GatoGraphQL\InternalGraphQLServer;
use PoP\Root\HttpFoundation\Response;
class GraphQLServer {
/**
* Execute a GraphQL query
*/
public static function executeQuery(
string $query,
array $variables = [],
?string $operationName = null,
int|string|null $schemaConfigurationIDOrSlug = null,
): Response {
// ...
}
/**
* Execute a GraphQL query contained in a (`.gql`) file
*/
public static function executeQueryInFile(
string $file,
array $variables = [],
?string $operationName = null,
int|string|null $schemaConfigurationIDOrSlug = null,
): Response {
// ...
}
/**
* Execute a persisted GraphQL query (providing its object
* of type WP_Post, ID as an int, or slug as a string)
*/
public static function executePersistedQuery(
WP_Post|string|int $persistedQuery,
array $variables = [],
?string $operationName = null
): Response {
// ...
}
}GraphQLクエリを実行してレスポンスの内容を取得するには:
use GatoGraphQL\InternalGraphQLServer\GraphQLServer;
// Provide the GraphQL query
$query = "{ ... }";
// Execute the query against the internal server
$response = GraphQLServer::executeQuery($query);
// Get the content and decode it
$responseContent = json_decode($response->getContent(), true);
// Access the data and errors from the response
$responseData = $responseContent["data"] ?? [];
$responseErrors = $responseContent["errors"] ?? [];