Ketahui cara membuat API GraphQL menggunakan PHP: Langkah-langkah untuk membina antara muka API

WBOY
Lepaskan: 2024-01-22 11:28:02
asal
584 orang telah melayarinya

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

GraphQL ialah bahasa pertanyaan untuk API, yang membolehkan pelanggan menanyakan data dengan tepat dan mengelakkan pembaziran jalur lebar rangkaian dan sumber pelayan. Dalam artikel ini, kita akan membincangkan cara membuat API GraphQL menggunakan PHP.

Cara API GraphQL berfungsi

GraphQL API adalah berdasarkan bahasa pertanyaan. Pelanggan menghantar permintaan pertanyaan kepada pelayan, dan pelayan menghuraikan permintaan dan mengembalikan data yang sepadan. Permintaan dan respons dihantar dan diterima dalam format bahasa GraphQL.

GraphQL API juga menyokong pertanyaan berkaitan berbilang peringkat, di mana pelanggan boleh bertanya beberapa data dan kemudian meminta data berkaitan dalam pertanyaan yang sama. Ini sangat mengurangkan lebar jalur rangkaian dan overhed pelayan.

Terdapat tiga konsep utama dalam API GraphQL: pertanyaan, jenis dan penghurai. Pertanyaan ialah permintaan yang dihantar oleh klien, jenis GraphQL ialah objek yang digunakan dalam API dan penyelesai ialah kod yang menukar permintaan kepada respons.

Mencipta API GraphQL

Kami akan melaksanakan API GraphQL menggunakan PHP dan menggunakan perpustakaan webonyx/graphql-php untuk membina dan menghuraikan pertanyaan.

Pertama, kita perlu mencipta beberapa jenis GraphQL, yang menerangkan objek dalam API. Berikut ialah contoh Jenis Pengguna:

use GraphQLTypeDefinitionType;
use GraphQLTypeDefinitionObjectType;

$userType = new ObjectType([
    'name' => 'User',
    'fields' => [
        'id' => Type::int(),
        'name' => Type::string(),
        'email' => Type::string()
    ]
]);
Salin selepas log masuk

Kod di atas mencipta jenis bernama Pengguna dengan tiga medan: id, nama dan e-mel. Setiap medan mempunyai jenis, Type::int() mewakili jenis integer, dan Type::string() mewakili jenis rentetan.

Seterusnya, kita perlu mencipta penghurai untuk mengendalikan pertanyaan. Berikut ialah contoh penghurai pertanyaan pengguna:

$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'];
    }
};
Salin selepas log masuk

Kod di atas mencipta tatasusunan $rootValue, yang mengandungi dua objek pengguna. Fungsi $resolver akan mengembalikan data yang sepadan mengikut permintaan yang dihantar oleh klien. Jika permintaan mempunyai parameter id, maklumat pengguna dengan id tersebut akan dikembalikan, jika tidak semua maklumat pengguna akan dikembalikan.

Akhir sekali, kita perlu mengikat jenis dan penyelesai di atas ke dalam API GraphQL. Berikut ialah kod pengikat:

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());
}
Salin selepas log masuk

Kod di atas mengikat jenis pengguna dan penyelesai ke dalam API GraphQL dan mencipta objek pertanyaan. Dalam objek pertanyaan kita boleh menentukan berbilang pertanyaan seperti 'pengguna' dan 'pengguna'. Setiap pertanyaan perlu menentukan jenis dan penghurainya, yang akan dipanggil apabila pertanyaan dikesan.

Kemudian kami perlu menghantar pertanyaan ke dalam API melalui permintaan POST dan menghuraikan data respons. Mengambil kod di atas sebagai contoh, kami akan mendapat objek JSON respons daripada API dan mengeluarkannya secara langsung.

Ringkasan

Dalam artikel ini, kami membincangkan cara mencipta API GraphQL menggunakan PHP. Kami membincangkan cara API GraphQL berfungsi dan menyediakan beberapa kod sampel untuk menunjukkan cara mencipta jenis, penyelesai dan mengikatnya ke dalam API. Kami juga menggunakan perpustakaan webonyx/graphql-php untuk memudahkan membina dan menghuraikan API. Jika anda ingin mengetahui lebih lanjut tentang GraphQL, sila rujuk dokumentasi rasmi GraphQL.

Atas ialah kandungan terperinci Ketahui cara membuat API GraphQL menggunakan PHP: Langkah-langkah untuk membina antara muka API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan