Maison >développement back-end >tutoriel php >Comment créer une interface API à l'aide de GraphQL en PHP
GraphQL est un langage de requête API émergent qui peut spécifier avec précision les données qui doivent être renvoyées sur le client, réduisant ainsi la transmission de données inutiles par le serveur et améliorant l'efficacité des requêtes réseau et de la transmission de données. Comparé à l'API de style RESTful traditionnelle, GraphQL est plus flexible et efficace. Dans cet article, nous explorerons comment utiliser GraphQL en PHP pour créer des interfaces API.
Avant de commencer à utiliser GraphQL, vous devez installer les bibliothèques liées à GraphQL. En PHP, la bibliothèque GraphQL la plus populaire est webonyx/graphql-php. Nous pouvons l'installer via composer. L'opération spécifique est la suivante :
$ composer require webonyx/graphql-php
Dans GraphQL, le schéma définit le modèle de données et instructions de requête . Le schéma est la partie centrale de GraphQL. En définissant le schéma, nous pouvons définir le comportement et la forme des données de l'API. GraphQL-php utilise la classe GraphQLTypeSchema pour créer le schéma. Par exemple, ce qui suit est une définition de schéma simple :
use GraphQLTypeDefinitionType; use GraphQLTypeSchema; $queryType = new GraphQLTypeDefinitionObjectType([ 'name' => 'Query', 'fields' => [ 'message' => [ 'type' => Type::string(), 'resolve' => function() { return 'Hello, World!'; } ], ] ]); $schema = new Schema([ 'query' => $queryType ]);
Dans cet exemple, nous définissons un type de requête qui contient un champ. Le champ s'appelle message et renvoie une chaîne Hello, World !. Dans le schéma, nous définissons et exportons le queryType, et utilisons ce type pour spécifier l'entrée de requête du schéma.
Une fois le schéma défini, vous pouvez commencer à traiter les requêtes GraphQL. Nous pouvons utiliser la bibliothèque PHP de GraphQL pour gérer les requêtes. Parmi eux, la classe GraphQLServerStandardServer assure l'implémentation du serveur et achemine la requête vers le gestionnaire de schéma pour obtenir le résultat de la réponse. Les étapes de base pour gérer les requêtes GraphQL sont les suivantes :
use GraphQLServerStandardServer; // 获取请求参数 $request = json_decode(file_get_contents('php://input'), true); // 将请求参数解析为GraphQL查询 $query = isset($request['query']) ? $request['query'] : null; $variables = isset($request['variables']) ? $request['variables'] : null; // 执行请求 $server = new StandardServer([ 'schema' => $schema, 'debug' => true, ]); $result = $server->executePsrRequest(Request::fromGlobals(), $query, [], $variables); // 返回结果 echo json_encode($result);Dans cet exemple, nous obtenons d'abord le paramètre de requête. Les paramètres de la requête sont ensuite analysés dans une requête GraphQL et exécutés via StandardServer. Enfin, nous sérialisons le résultat du retour au format JSON et le renvoyons au client.
$context = [ 'db' => $db, 'currentUser' => $currentUser, ]; $server = new StandardServer([ 'schema' => $schema, 'context' => $context, ]); $result = $server->processPsrRequest($request, $response);Dans cet exemple, nous définissons une variable appelée "context" et ajoutons la variable au gestionnaire de requêtes. De cette façon, chaque requête peut accéder à ce contexte et utiliser les informations qu'il contient. SummaryPour utiliser GraphQL pour créer une interface API en PHP, nous devons installer la bibliothèque GraphQL, définir le schéma, gérer les requêtes GraphQL, implémenter les autorisations et l'authentification, et utiliser le contexte pour transmettre des informations. La véritable valeur de GraphQL est qu'il fournit un moyen flexible et efficace d'interroger et d'exploiter les données, aidant ainsi les développeurs à créer des API plus élégantes et efficaces. J'espère que cet article pourra aider les lecteurs à mieux comprendre, apprendre GraphQL et l'utiliser pour créer des API étonnantes en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!