Internal GraphQL Server
Execute queries GraphQL diretamente na sua aplicação, usando código PHP.

Esta extensão instala um servidor GraphQL interno, que pode ser invocado dentro da sua aplicação usando código PHP.
O servidor GraphQL interno é acessado via classe GatoGraphQL\InternalGraphQLServer\GraphQLServer, por meio destes três métodos:
executeQuery: Executa uma query GraphQLexecuteQueryInFile: Executa uma query GraphQL contida em um arquivo (.gql)executePersistedQuery: Executa uma persisted query GraphQL (fornecendo seu ID como inteiro, ou o slug como string) (a extensão Persisted Queries é necessária)
Estas são as assinaturas dos 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 executar uma query GraphQL e obter o conteúdo da resposta:
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"] ?? [];