GraphQL は、データの取得と操作のプロセスを大幅に簡素化できる強力な API クエリ言語です。 PHP は広く使用されサポートされているプログラミング言語であり、GraphQL API を使用してさまざまなデータ ソースに簡単にアクセスすることもできます。ただし、PHP 開発者には、PHP アプリケーションで GraphQL API を使用するためのベスト プラクティスに関するガイダンスがまだ必要です。この記事では、PHP で GraphQL API を使用する方法を詳しく説明します。
1. GraphQL ライブラリのインストールと設定
始める前に、アプリケーションが GraphQL サーバーと通信できるようにするために、PHP GraphQL ライブラリをダウンロードしてインストールする必要があります。 PHP では、webonyx/graphql-php や youshido/graphql など、人気のある GraphQL ライブラリから選択できます。この記事では、デモンストレーションとして webonyx/graphql-php を使用します。
まず、Composer を使用してこのライブラリをインストールする必要があります。 Composer をインストールしていない場合は、公式 Web サイトのドキュメントを確認してインストールしてください。次に、ターミナルを開いて次のコマンドを実行します。
composer require webonyx/graphql-php
インストールが完了したら、GraphQL サーバーと通信できるように GraphQL ライブラリを構成する必要があります。 GraphQL サーバーの URL を指定し、HTTP クライアント実装を選択する必要があります。この例では、Guzzle HTTP クライアント実装を使用します。以下は、GraphQL ライブラリを構成するサンプル コードです。
require_once __DIR__ . '/vendor/autoload.php'; use GuzzleHttpClient; use GraphQLClientExceptionRequestError; use GraphQLClientResponse; $http = new Client([ 'base_uri' => 'https://example.com/graphql', 'headers' => [ 'Content-Type' => 'application/json', 'Accept' => 'application/json', ], ]); $graphql = new GraphQLClientHttpClientHttpClient($http, function (Response $response, RequestError $errors) { if ($errors) { throw $errors; } }); $transport = new GraphQLClientTransport($graphql);
上記のコードでは、まず Guzzle HTTP クライアントを作成し、GraphQL サーバーの URL を指定します。次に、GraphQL クライアントを作成する関数を定義します。これにより、HTTP クライアントがインスタンス化され、それが GraphQL クライアントに渡されます。最後に、GraphQL クエリをリモート サーバーに送信するための GraphQL リクエスト トランスポート オブジェクトを作成しました。
2. GraphQL クエリを作成する
GraphQL ライブラリを使用してサーバーと通信する方法を理解した後、データを取得するための GraphQL クエリを準備する必要があります。リクエストする必要があるすべての GraphQL クエリについて、クエリ文字列を定義し、それを GraphQL クライアントに渡す必要があります。 GraphQL クエリ文字列の例を次に示します。
$query = <<<'GRAPHQL' query ($name: String!) { user(name: $name) { id name email posts { id title content } } } GRAPHQL;
上記のクエリでは、name
パラメータを必要とし、リストを返す user
という名前のクエリを定義しました。そのユーザーに関連付けられた ID、名前、電子メール、投稿の情報。このクエリは次の結果を返します:
{ "data": { "user": { "id": "1", "name": "John Doe", "email": "johndoe@example.com", "posts": [ { "id": "1", "title": "Introduction to GraphQL", "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit." }, { "id": "2", "title": "GraphQL vs. REST", "content": "Sed ut perspiciatis unde omnis iste natus error sit voluptatem." } ] } } }
3. GraphQL クエリの送信
GraphQL クエリ文字列を準備したので、GraphQL ライブラリを使用してクエリをリモート サーバーに送信できます。 。以下は、GraphQL ライブラリを使用してクエリを送信するサンプル コードです。
$variables = ['name' => 'John Doe']; $query = <<<'GRAPHQL' query ($name: String!) { user(name: $name) { id name email posts { id title content } } } GRAPHQL; $request = new GraphQLClientRequest($query, $variables); $response = $transport->send($request);
上記のコードでは、最初に $variables
という名前のパラメータ配列を定義し、それを GraphQL クエリに渡します。また、Graphql クエリ文字列を定義し、それを GraphQL クライアントに渡します。最後に、新しい GraphQL リクエストを作成し、GraphQL トランスポートを使用して送信します。 GraphQL トランスポートは、クエリ文字列と変数配列をパラメータとして要求し、GraphQL サーバーから応答を返します。
4. GraphQL 応答の処理
GraphQL クエリの送信に成功し、サーバーから応答が返されたら、応答を処理して必要なデータを抽出できます。 GraphQL レスポンスを処理するサンプル コードは次のとおりです。
$data = $response->getData(); $user = $data['user']; $id = $user['id']; $name = $user['name']; $email = $user['email']; $posts = $user['posts']; foreach ($posts as $post) { $postId = $post['id']; $postTitle = $post['title']; $postContent = $post['content']; }
上記のコードでは、まずレスポンスから GraphQL データを抽出し、それをローカル変数 $data
に保存します。また、データから「user」オブジェクトを抽出し、ローカル変数 $user
に保存しました。最後に、ID、名前、電子メール、投稿のリストなどの必要なプロパティをユーザー オブジェクトから抽出し、ループを使用して投稿を反復処理して抽出しました。
結論
これで、PHP で GraphQL API を使用する方法のベスト プラクティスを学びました。 GraphQL ライブラリと Guzzle HTTP クライアントを使用すると、GraphQL サーバーと簡単に通信し、PHP アプリケーションでデータの取得と操作を実装できます。 GraphQL API を使用して新しいプロジェクトを開発している場合でも、既存の PHP アプリケーションを更新して GraphQL API をサポートしている場合でも、コードのパフォーマンスと保守性の両方を確保するために、上記のベスト プラクティスを採用することをお勧めします。
以上がPHP で GraphQL API を使用する方法のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。