Internal GraphQL Server
Exécutez des requêtes GraphQL directement dans votre application, en utilisant du code PHP.

Cette extension installe un serveur GraphQL interne, qui peut être invoqué dans votre application en utilisant du code PHP.
Le serveur GraphQL interne est accessible via la classe GatoGraphQL\InternalGraphQLServer\GraphQLServer, à travers ces trois méthodes :
executeQuery: Exécute une requête GraphQLexecuteQueryInFile: Exécute une requête GraphQL contenue dans un fichier (.gql)executePersistedQuery: Exécute une persisted query GraphQL (en fournissant son ID sous forme d'entier, ou son slug sous forme de chaîne) (l'extension Persisted Queries est requise)
Voici les signatures des méthodes :
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 {
// ...
}
}Pour exécuter une requête GraphQL et obtenir le contenu de la réponse :
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"] ?? [];