ホームページ  >  記事  >  バックエンド開発  >  PHP で GraphQL ミドルウェアを使用して API を作成する方法

PHP で GraphQL ミドルウェアを使用して API を作成する方法

WBOY
WBOYオリジナル
2023-06-17 12:36:221356ブラウズ

GraphQL は、開発者がフロントエンドとバックエンドの間でデータを転送する柔軟かつ強力な方法を構築できるようにする新しい API クエリ言語です。 PHP は、そのパワーと柔軟性により、さまざまなアプリケーションの開発に適した人気のあるサーバーサイド言語です。この記事では、PHP と GraphQL ミドルウェアを使用して API を作成する方法を説明します。

GraphQL ミドルウェアは、GraphQL API とアプリケーション コードの間のブリッジとして機能するツールです。これは、GraphQL クエリの処理と解析に役立ち、データのリクエストと応答のプロセスをより適切に管理できるようになります。 PHP では、これを実現するために、次の 3 つを含むいくつかの異なるミドルウェアを使用できます。

  1. GraphQLServerMiddlewareErrorMiddleware
  2. GraphQLServerMiddlewareTracingMiddleware
  3. GraphQLServerMiddlewareValidateRequestMiddleware

これらのミドルウェアを使用する前に、PHP に GraphQL をインストールする必要があります。 Composer を使用して、次の 2 つのパッケージをそれぞれインストールできます:

  1. webonyx/graphql-php – GraphQL サーバーの構築に使用されます
  2. league/graphql – GraphQL ミドルウェアの作成に使用されます

インストールが完了したら、次のコードを使用して 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();
?>

このコードでは、最初に GraphQL サーバー構成を作成し、クエリなどのいくつかのオプションを設定します。バッチ処理モードとデバッグ モード。次に、リクエストを解析してサーバーに渡し、最後にレスポンスをクライアントに送り返します。

ここで、3 つの異なる GraphQL ミドルウェアの使用方法を見てみましょう:

  1. GraphQLServerMiddlewareErrorMiddleware

ErrorMiddleware は、次の目的で使用されるミドルウェアの一種です。 GraphQL API でのエラーの捕捉と処理。 API にクエリを送信すると、API はエラーを検出し、エラー応答を返すことができます。 ErrorMiddleware を使用するには、それを GraphQL サーバー構成に追加する必要があります。

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

これにより、エラーが発生したときにサーバーが適切な応答を返すことが保証され、API を簡単にデバッグできます。

  1. GraphQLServerMiddlewareTracingMiddleware

TracingMiddleware は、GraphQL API でクエリ時間を記録するために使用されるミドルウェアです。これは、開発者がクエリのボトルネックを特定し、処理が完了したときに実行時間を返すのに役立ちます。 TracingMiddleware を使用するには、それを GraphQL サーバー構成に追加する必要があります。

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

これにより、API が適切に動作し、将来の調整に備えられるようになります。

  1. GraphQLServerMiddlewareValidateRequestMiddleware

ValidateRequestMiddleware は、GraphQL クエリが有効かどうかを確認するために使用されるミドルウェアです。これは、サーバーをクラッシュさせたり機密情報を漏洩させたりする可能性のある、悪意のあるクエリや API 上でのクエリの実行を回避するのに役立ちます。 ValidateRequestMiddleware を使用するには、それを GraphQL サーバー構成に追加する必要があります。

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

これにより、API が安全であり、有効なクエリ リクエストにのみ応答することを保証できます。

以上がPHPでGraphQLミドルウェアを使ったAPIを書く基本的な内容です。ミドルウェアを使用すると、コードが大幅に簡素化され、データ転送プロセスをより適切に管理できるようになります。 GraphQL と PHP をより深く理解するには、公式ドキュメントとサンプル コードでその他の方法とヒントを確認してください。

以上がPHP で GraphQL ミドルウェアを使用して API を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。