PHP を使用して GraphQL API を作成する方法を学ぶ: API インターフェイスを構築する手順

WBOY
リリース: 2024-01-22 11:28:02
オリジナル
567 人が閲覧しました

PHP API接口:如何创建GraphQL API?

GraphQL は、クライアントがデータを正確にクエリし、ネットワーク帯域幅とサーバー リソースの無駄を回避できる API 用のクエリ言語です。この記事では、PHP を使用して GraphQL API を作成する方法について説明します。

GraphQL API の仕組み

GraphQL API はクエリ言語に基づいています。クライアントはクエリリクエストをサーバーに送信し、サーバーはリクエストを解析して対応するデータを返します。リクエストとレスポンスはGraphQL言語形式で送受信されます。

GraphQL API はマルチレベルの関連クエリもサポートしており、クライアントは一部のデータをクエリしてから、同じクエリで関連データをリクエストできます。これにより、ネットワーク帯域幅とサーバーのオーバーヘッドが大幅に削減されます。

GraphQL API には、クエリ、タイプ、パーサーという 3 つの主要な概念があります。クエリはクライアントによって送信されるリクエスト、GraphQL タイプは API で使用されるオブジェクト、リゾルバーはリクエストをレスポンスに変換するコードです。

GraphQL API の作成

PHP を使用して GraphQL API を実装し、webonyx/graphql-php ライブラリを使用してクエリを構築および解析します。

まず、API 内のオブジェクトを記述するいくつかの GraphQL タイプを作成する必要があります。以下はユーザー タイプの例です。

use GraphQLTypeDefinitionType;
use GraphQLTypeDefinitionObjectType;

$userType = new ObjectType([
    'name' => 'User',
    'fields' => [
        'id' => Type::int(),
        'name' => Type::string(),
        'email' => Type::string()
    ]
]);
ログイン後にコピー

上記のコードは、id、名前、電子メールの 3 つのフィールドを含む User という名前のタイプを作成します。各フィールドには型があり、Type::int() は整数型を表し、Type::string() は文字列型を表します。

次に、クエリを処理するパーサーを作成する必要があります。以下はユーザー クエリ パーサーのサンプルです。

$rootValue = [
    'users' => [
        ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
        ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com']
    ]
];

$resolver = function ($root, $args) {
    global $rootValue;

    if (isset($args['id'])) {
        foreach ($rootValue['users'] as $user) {
            if ($user['id'] == $args['id']) {
                return $user;
            }
        }
    } else {
        return $rootValue['users'];
    }
};
ログイン後にコピー

上記のコードは、2 つのユーザー オブジェクトを含む $rootValue 配列を作成します。 $resolver 関数は、クライアントから送信されたリクエストに従って、対応するデータを返します。リクエストに id パラメーターがある場合は、その id を持つユーザー情報が返されます。それ以外の場合は、すべてのユーザー情報が返されます。

最後に、上記の型とリゾルバーを GraphQL API にバインドする必要があります。バインディング コードは次のとおりです。

use GraphQLGraphQL;
use GraphQLTypeSchema;

$schema = new Schema([
    'query' => new ObjectType([
        'name' => 'Query',
        'fields' => [
            'user' => [
                'type' => $userType,
                'args' => ['id' => Type::int()],
                'resolve' => $resolver
            ],
            'users' => [
                'type' => Type::listOf($userType),
                'resolve' => $resolver
            ]
        ]
    ])
]);

if (!empty($_POST['query'])) {
    $result = GraphQL::executeQuery($schema, $_POST['query']);
    echo json_encode($result->toArray());
}
ログイン後にコピー

上記のコードは、ユーザー タイプとリゾルバーを GraphQL API にバインドし、クエリ オブジェクトを作成します。クエリ オブジェクトでは、「user」や「users」などの複数のクエリを定義できます。各クエリはそのタイプとパーサーを指定する必要があり、クエリが検出されたときに呼び出されます。

次に、POST リクエストを介して API にクエリを送信し、応答データを解析する必要があります。上記のコードを例として、API から応答 JSON オブジェクトを取得して直接出力します。

概要

この記事では、PHP を使用して GraphQL API を作成する方法を紹介しました。 GraphQL API がどのように機能するかについて説明し、タイプ、リゾルバーを作成し、それらを API にバインドする方法を示すサンプル コードをいくつか提供しました。また、webonyx/graphql-php ライブラリを使用して、API の構築と解析を簡素化します。 GraphQL について詳しく知りたい場合は、GraphQL の公式ドキュメントを参照してください。

以上がPHP を使用して GraphQL API を作成する方法を学ぶ: API インターフェイスを構築する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!