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

WBOY
Libérer: 2023-06-17 12:38:01
original
1355 Les gens l'ont consulté

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();
    ?>
    Copier après la connexion
  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(),
        ]);
    Copier après la connexion
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(),
        ]);
    Copier après la connexion
  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(),
        ]);
    Copier après la connexion
  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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal