Heim  >  Artikel  >  Backend-Entwicklung  >  So schreiben Sie eine API mithilfe der GraphQL-Middleware in PHP

So schreiben Sie eine API mithilfe der GraphQL-Middleware in PHP

WBOY
WBOYOriginal
2023-06-17 12:36:221331Durchsuche

GraphQL ist eine neue API-Abfragesprache, die es Entwicklern ermöglicht, eine flexible und leistungsstarke Möglichkeit zur Datenübertragung zwischen Front-End und Back-End zu entwickeln. PHP ist eine beliebte serverseitige Sprache, die sich aufgrund ihrer Leistungsfähigkeit und Flexibilität für die Entwicklung verschiedener Anwendungen eignet. In diesem Artikel erfahren Sie, wie Sie APIs mit PHP und GraphQL-Middleware schreiben.

GraphQL-Middleware ist ein Tool, das als Brücke zwischen der GraphQL-API und dem Anwendungscode fungiert. Es hilft uns, GraphQL-Abfragen zu verarbeiten und zu analysieren, sodass wir den Datenanforderungs- und Antwortprozess besser verwalten können. In PHP können wir dazu einige verschiedene Middlewares verwenden, darunter die folgenden drei:

  1. GraphQLServerMiddlewareErrorMiddleware
  2. GraphQLServerMiddlewareTracingMiddleware
  3. GraphQLServerMiddlewareValidateRequestMiddleware

Bevor wir diese Middlewares verwenden, müssen wir Graph installieren QL in PHP. Wir können Composer verwenden, um jeweils die folgenden zwei Pakete zu installieren:

  1. webonyx/graphql-php – wird zum Erstellen von GraphQL-Servern verwendet
  2. league/graphql – wird zum Schreiben von GraphQL-Middleware verwendet

Nachdem die Installation abgeschlossen ist, können wir das verwenden Folgender Code zum Starten des GraphQL-Servers:

<?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();
?>

In diesem Code erstellen wir zunächst eine GraphQL-Serverkonfiguration und legen einige Optionen wie Abfrage-Batching und Debug-Modus fest. Anschließend analysieren wir die Anfrage, leiten sie an den Server weiter und senden schließlich die Antwort zurück an den Client.

Werfen wir nun einen Blick auf die Verwendung von drei verschiedenen GraphQL-Middlewares:

  1. GraphQLServerMiddlewareErrorMiddleware

ErrorMiddleware ist eine Middleware, die zum Erkennen und Behandeln von Fehlern in GraphQL-APIs verwendet wird. Wenn wir eine Anfrage an die API senden, kann diese den Fehler erkennen und eine Fehlerantwort zurückgeben. Um ErrorMiddleware verwenden zu können, müssen wir es zur GraphQL-Serverkonfiguration hinzufügen:

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setFieldMiddleware([
        new ErrorMiddleware(),
    ]);

Auf diese Weise können wir sicherstellen, dass der Server bei Auftreten eines Fehlers eine angemessene Antwort zurückgibt, und wir können unsere API problemlos debuggen.

  1. GraphQLServerMiddlewareTracingMiddleware

TracingMiddleware ist eine Middleware zur Protokollierung von Abfragezeiten in GraphQL-APIs. Es hilft Entwicklern, Abfrageengpässe zu erkennen und gibt Ausführungszeiten zurück, wenn die Verarbeitung abgeschlossen ist. Um TracingMiddleware verwenden zu können, müssen wir es zur GraphQL-Serverkonfiguration hinzufügen:

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setFieldMiddleware([
        new TracingMiddleware(),
    ]);

Auf diese Weise können wir sicherstellen, dass unsere API eine gute Leistung erbringt und für zukünftige Anpassungen bereit ist.

  1. GraphQLServerMiddlewareValidateRequestMiddleware

ValidateRequestMiddleware ist eine Middleware, die prüft, ob eine GraphQL-Abfrage gültig ist. Es hilft uns, die Ausführung böswilliger Abfragen oder Anfragen an die API zu vermeiden, die den Server zum Absturz bringen oder vertrauliche Informationen preisgeben könnten. Um die ValidateRequestMiddleware verwenden zu können, müssen wir sie zur GraphQL-Serverkonfiguration hinzufügen:

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setContext($context)
    ->setValidationRules([
        new QuerySecurityRule(),
    ])
    ->setFieldMiddleware([
        new ValidateRequestMiddleware(),
    ]);

Auf diese Weise können wir sicherstellen, dass unsere API sicher ist und nur auf gültige Abfrageanfragen antwortet.

Das Obige ist der grundlegende Inhalt des Schreibens einer API mithilfe der GraphQL-Middleware in PHP. Der Einsatz von Middleware kann den Code erheblich vereinfachen und uns dabei helfen, den Datenübertragungsprozess besser zu verwalten. Weitere Methoden und Tipps finden Sie in der offiziellen Dokumentation und im Beispielcode für ein tieferes Verständnis von GraphQL und PHP.

Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine API mithilfe der GraphQL-Middleware in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn