Internal GraphQL Server
Ejecuta consultas GraphQL directamente dentro de tu aplicación, utilizando código PHP.

Esta extensión instala un servidor GraphQL interno, que puede invocarse dentro de tu aplicación utilizando código PHP.
Al servidor GraphQL interno se accede mediante la clase GatoGraphQL\InternalGraphQLServer\GraphQLServer, a través de estos tres métodos:
executeQuery: Ejecuta una consulta GraphQLexecuteQueryInFile: Ejecuta una consulta GraphQL contenida en un archivo (.gql)executePersistedQuery: Ejecuta una persisted query de GraphQL (proporcionando su ID como entero, o su slug como cadena) (se requiere la extensión Persisted Queries)
Estas son las firmas de los métodos:
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 {
// ...
}
}Para ejecutar una consulta GraphQL y obtener el contenido de la respuesta:
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"] ?? [];