Maison >développement back-end >tutoriel php >Comment écrire une API à l'aide du middleware GraphQL en PHP

Comment écrire une API à l'aide du middleware GraphQL en PHP

WBOY
WBOYoriginal
2023-06-17 12:36:221370parcourir

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

  1. Avant d'utiliser ces middlewares, nous devons installer GraphQL en PHP. Nous pouvons utiliser Composer pour installer respectivement les deux packages suivants :
  2. webonyx/graphql-php – pour construire des serveurs GraphQL
  3. league/graphql – pour écrire du middleware GraphQL

Une fois l'installation terminée, nous pouvons utiliser le code suivant pour démarrer le serveur GraphQL :
    <?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();
    ?>
  1. Dans ce code, nous créons d'abord une configuration de serveur GraphQL et définissez certaines options telles que le traitement par lots de requêtes et le mode de débogage. Nous analysons ensuite la demande, la transmettons au serveur et renvoyons enfin la réponse au client.
  2. Voyons maintenant comment utiliser trois middlewares GraphQL différents : les articles sont un middleware utilisé pour détecter et gérer les erreurs dans les API GraphQL. Lorsque nous envoyons une requête à l'API, elle peut détecter l'erreur et renvoyer une réponse d'erreur. Pour utiliser ErrorMiddleware, nous devons l'ajouter à la configuration du serveur GraphQL :
  3. $serverConfig = ServerConfig::create()
        ->setSchema($schema)
        ->setRootValue($rootValue)
        ->setQueryBatching(true)
        ->setDebug(true)
        ->setFieldMiddleware([
            new ErrorMiddleware(),
        ]);
De cette façon, nous pouvons nous assurer que le serveur renvoie une réponse appropriée lorsqu'une erreur se produit, et nous pouvons facilement déboguer notre API .

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(),
        ]);
  1. De cette façon, nous pouvons nous assurer que notre API fonctionne bien et est prête pour de futurs ajustements.

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(),
        ]);
  1. De cette façon, nous pouvons garantir que notre API est sécurisée et ne répond qu'aux demandes de requêtes valides.
Ce qui précède est le contenu de base de l'écriture d'une API à l'aide du middleware GraphQL en PHP. L'utilisation d'un middleware peut grandement simplifier le code et nous aider à mieux gérer le processus de transfert de données. Pour une compréhension plus approfondie de GraphQL et PHP, consultez la documentation officielle et l'exemple de code pour plus de méthodes et de conseils.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn