Rumah >pembangunan bahagian belakang >tutorial php >Amalan terbaik tentang cara menggunakan API GraphQL dalam PHP
GraphQL ialah bahasa pertanyaan API yang berkuasa yang boleh memudahkan proses pemerolehan dan manipulasi data. PHP, sebagai bahasa pengaturcaraan yang digunakan secara meluas dan disokong, juga boleh menggunakan API GraphQL dengan mudah untuk mengakses pelbagai sumber data. Walau bagaimanapun, pembangun PHP masih memerlukan beberapa panduan tentang amalan terbaik untuk menggunakan API GraphQL dalam aplikasi PHP. Dalam artikel ini, kami akan mendalami cara menggunakan API GraphQL dalam PHP.
1. Pasang dan konfigurasikan perpustakaan GraphQL
Sebelum kita mula, kita perlu memuat turun dan memasang perpustakaan PHP GraphQL untuk membolehkan aplikasi kita berkomunikasi dengan pelayan GraphQL. Dalam PHP, terdapat beberapa perpustakaan GraphQL yang popular untuk dipilih, seperti webonyx/graphql-php dan youshido/graphql. Dalam artikel ini, kami akan menggunakan webonyx/graphql-php sebagai demonstrasi.
Pertama, kita perlu memasang perpustakaan ini menggunakan Komposer. Jika anda belum memasang Komposer, sila semak dokumentasi di tapak web rasmi untuk memasangnya. Kemudian, buka terminal dan jalankan arahan berikut:
composer require webonyx/graphql-php
Setelah dipasang, kita perlu mengkonfigurasi perpustakaan GraphQL supaya ia boleh berkomunikasi dengan pelayan GraphQL. Kita perlu menentukan URL pelayan GraphQL dan memilih pelaksanaan klien HTTP. Dalam contoh ini, kami akan menggunakan pelaksanaan klien HTTP Guzzle. Berikut ialah contoh kod untuk mengkonfigurasi perpustakaan 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);
Dalam kod di atas, kami mula-mula mencipta klien HTTP Guzzle dan menentukan URL pelayan GraphQL. Kami kemudiannya mentakrifkan fungsi yang mencipta klien GraphQL, yang membuat instantiate klien HTTP dan menghantarnya kepada klien GraphQL. Akhirnya, kami mencipta objek pengangkutan permintaan GraphQL untuk menghantar pertanyaan GraphQL ke pelayan jauh.
2. Tulis pertanyaan GraphQL
Selepas memahami cara menggunakan perpustakaan GraphQL untuk berkomunikasi dengan pelayan, kami perlu menyediakan pertanyaan GraphQL untuk mendapatkan data. Untuk setiap pertanyaan GraphQL yang perlu diminta, kita perlu menentukan rentetan pertanyaan dan menghantarnya kepada klien GraphQL. Berikut ialah contoh rentetan pertanyaan GraphQL:
$query = <<<'GRAPHQL' query ($name: String!) { user(name: $name) { id name email posts { id title content } } } GRAPHQL;
Dalam pertanyaan di atas, kami telah menentukan pertanyaan bernama user
yang mengambil parameter name
dan mengembalikan ID yang dikaitkan dengan pengguna, nama, e-mel tersebut dan senarai jawatan. Pertanyaan ini akan mengembalikan hasil berikut:
{ "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. Hantar pertanyaan GraphQL
Sekarang setelah kami mempunyai rentetan pertanyaan GraphQL sedia, kami boleh menggunakan perpustakaan GraphQL untuk menghantar pertanyaan ke pelayan jauh . Berikut ialah kod sampel untuk menghantar pertanyaan menggunakan perpustakaan 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);
Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan parameter bernama $variables
dan hantarkannya kepada pertanyaan GraphQL. Kami juga mentakrifkan rentetan pertanyaan Graphql dan menyampaikannya kepada klien GraphQL. Akhir sekali, kami mencipta permintaan GraphQL baharu dan menghantarnya menggunakan pengangkutan GraphQL. Pengangkutan GraphQL akan meminta rentetan pertanyaan dan tatasusunan berubah sebagai parameter dan mengembalikan respons daripada pelayan GraphQL.
4. Memproses respons GraphQL
Setelah kami berjaya menghantar pertanyaan GraphQL dan mengembalikan respons daripada pelayan, kami boleh memproses respons dan mengekstrak data yang diperlukan daripadanya. Berikut ialah contoh kod untuk mengendalikan respons 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']; }
Dalam kod di atas, kami mula-mula mengekstrak data GraphQL daripada respons dan menyimpannya dalam pembolehubah tempatan $data
. Kami juga mengekstrak objek 'pengguna' daripada data dan menyimpannya dalam pembolehubah tempatan $user
. Akhir sekali, kami mengekstrak sifat yang diperlukan seperti ID, nama, e-mel dan senarai siaran daripada objek pengguna dan menggunakan gelung untuk mengulang dan mengekstrak siaran.
Kesimpulan
Kini, kami telah melihat amalan terbaik tentang cara menggunakan API GraphQL dalam PHP. Menggunakan perpustakaan GraphQL dan klien HTTP Guzzle, kami boleh berkomunikasi dengan mudah dengan pelayan GraphQL dan melaksanakan pengambilan dan manipulasi data dalam aplikasi PHP. Sama ada anda sedang membangunkan projek baharu menggunakan API GraphQL atau mengemas kini aplikasi PHP sedia ada untuk menyokong API GraphQL, kami menggesa anda untuk menggunakan amalan terbaik di atas untuk memastikan kod anda berprestasi dan boleh diselenggara.
Atas ialah kandungan terperinci Amalan terbaik tentang cara menggunakan API GraphQL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!