GraphQL est un langage de requête API émergent qui permet aux développeurs de créer un moyen flexible et puissant de transférer des données entre le front-end et le back-end. PHP est un langage côté serveur populaire adapté au développement de diverses applications en raison de sa puissance et de sa flexibilité. Dans cet article, nous explorerons comment écrire des API en utilisant PHP avec le middleware GraphQL.
Le middleware GraphQL est un outil qui fait office de pont entre une API GraphQL et le code d'une application. Il nous aide à traiter et à analyser les requêtes GraphQL afin que nous puissions mieux gérer le processus de demande de données et de réponse. En PHP, nous pouvons utiliser plusieurs middlewares différents pour y parvenir, dont les trois suivants : ServerMiddlewareValidateRequestMiddleware
<?php require_once(__DIR__ . '/vendor/autoload.php'); use GraphQLServerServerConfig; use GraphQLServerStandardServer; $serverConfig = ServerConfig::create() ->setSchema($schema) //GraphQL schema ->setRootValue($rootValue) //GraphQL查询的根对象 ->setQueryBatching(true) //是否允许GraphQL批量查询 ->setDebug(true); //调试模式 $request = GraphQLServerRequestParser::parse(); $response = (new StandardServer($serverConfig))->processPsrRequest($request); $response->send(); ?>
$serverConfig = ServerConfig::create() ->setSchema($schema) ->setRootValue($rootValue) ->setQueryBatching(true) ->setDebug(true) ->setFieldMiddleware([ new ErrorMiddleware(), ]);
GraphQLServerMiddlewareTracingMiddleware
TracingMiddleware est un middleware utilisé pour enregistrer les temps de requête dans les API GraphQL. Il aide les développeurs à identifier les goulots d'étranglement des requêtes et renvoie les temps d'exécution une fois le traitement terminé. Pour utiliser TracingMiddleware, nous devons l'ajouter à la configuration du serveur GraphQL :$serverConfig = ServerConfig::create() ->setSchema($schema) ->setRootValue($rootValue) ->setQueryBatching(true) ->setDebug(true) ->setFieldMiddleware([ new TracingMiddleware(), ]);
GraphQLServerMiddlewareValidateRequestMiddleware
ValidateRequestMiddleware est un middleware qui vérifie si une requête GraphQL est valide. Cela nous aide à éviter d'exécuter des requêtes malveillantes ou des requêtes sur l'API, ce qui pourrait faire planter le serveur ou exposer des informations sensibles. Afin d'utiliser ValidateRequestMiddleware, nous devons l'ajouter à la configuration du serveur GraphQL :$serverConfig = ServerConfig::create() ->setSchema($schema) ->setRootValue($rootValue) ->setQueryBatching(true) ->setDebug(true) ->setContext($context) ->setValidationRules([ new QuerySecurityRule(), ]) ->setFieldMiddleware([ new ValidateRequestMiddleware(), ]);
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!