Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menulis API menggunakan perisian tengah GraphQL dalam PHP

Bagaimana untuk menulis API menggunakan perisian tengah GraphQL dalam PHP

WBOY
WBOYasal
2023-06-17 12:36:221372semak imbas

GraphQL ialah bahasa pertanyaan API yang baru muncul yang membolehkan pembangun membina cara yang fleksibel dan berkuasa untuk memindahkan data antara bahagian hadapan dan bahagian belakang. PHP ialah bahasa sebelah pelayan yang popular sesuai untuk membangunkan pelbagai aplikasi kerana kuasa dan fleksibilitinya. Dalam artikel ini, kami akan meneroka cara menulis API menggunakan PHP dengan perisian tengah GraphQL.

Perisian tengah GraphQL ialah alat yang bertindak sebagai jambatan antara API GraphQL dan kod aplikasi. Ia membantu kami memproses dan menghuraikan pertanyaan GraphQL supaya kami boleh mengurus permintaan data dan proses tindak balas dengan lebih baik. Dalam PHP, kita boleh menggunakan beberapa middleware yang berbeza untuk mencapai ini, termasuk tiga yang berikut:

  1. GraphQLServerMiddlewareErrorMiddleware
  2. GraphQLServerMiddlewareTracingMiddleware
  3. GraphQLServerMiddlewareErrorMiddleware
GraphQLServerMiddlewareTracingMiddleware

GraphQLServerMiddlewareMiddleware
    GraphQLServerMiddleware
  1. GraphQLServerMiddleware
  2. GraphQLServerMiddlewareSebelum menggunakan middleware ini, kita perlu memasang GraphQL dalam PHP. Kita boleh menggunakan Composer untuk memasang dua pakej berikut masing-masing:
webonyx/graphql-php – digunakan untuk membina pelayan GraphQL

liga/graphql – digunakan untuk menulis perisian tengah GraphQL

Selepas pemasangan selesai, kita boleh menggunakan kod berikut untuk memulakan pelayan 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();
?>
    Dalam kod ini, kita mula-mula mencipta konfigurasi pelayan GraphQL dan menetapkan beberapa pilihan seperti pengumpulan pertanyaan pemprosesan dan mod nyahpepijat. Kami kemudian menghuraikan permintaan dan menghantarnya ke pelayan dan akhirnya menghantar semula respons kepada klien.
  1. Sekarang, mari lihat cara menggunakan tiga perisian tengah GraphQL yang berbeza:

GraphQLServerMiddlewareErrorMiddleware

    ErrorMiddleware ialah perisian tengah untuk Menangkap dan mengendalikan ralat API GraphQL Apabila kami menghantar pertanyaan kepada API, ia boleh mengesan ralat dan mengembalikan respons ralat. Untuk menggunakan ErrorMiddleware, kami perlu menambahkannya pada konfigurasi pelayan GraphQL:
  1. $serverConfig = ServerConfig::create()
        ->setSchema($schema)
        ->setRootValue($rootValue)
        ->setQueryBatching(true)
        ->setDebug(true)
        ->setFieldMiddleware([
            new ErrorMiddleware(),
        ]);
  2. Dengan cara ini kami boleh memastikan pelayan mengembalikan respons yang sesuai apabila ralat berlaku dan kami boleh menyahpepijat API kami dengan mudah.

GraphQLServerMiddlewareTracingMiddleware

    TracingMiddleware ialah perisian tengah untuk mengelog masa pertanyaan dalam API GraphQL. Ia membantu pembangun mengenal pasti kesesakan pertanyaan dan mengembalikan masa pelaksanaan apabila pemprosesan selesai. Untuk menggunakan TracingMiddleware, kami perlu menambahkannya pada konfigurasi pelayan GraphQL:
  1. $serverConfig = ServerConfig::create()
        ->setSchema($schema)
        ->setRootValue($rootValue)
        ->setQueryBatching(true)
        ->setDebug(true)
        ->setFieldMiddleware([
            new TracingMiddleware(),
        ]);
  2. Dengan cara ini kami boleh memastikan API kami berfungsi dengan baik dan bersedia untuk pelarasan masa hadapan.

GraphQLServerMiddlewareValidateRequestMiddleware

ValidateRequestMiddleware ialah perisian tengah yang menyemak sama ada pertanyaan GraphQL adalah sah. Ini membantu kami mengelak daripada menjalankan pertanyaan atau pertanyaan berniat jahat pada API, yang boleh merosakkan pelayan atau mendedahkan maklumat sensitif. Untuk menggunakan ValidateRequestMiddleware, kami perlu menambahkannya pada konfigurasi pelayan GraphQL:

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setContext($context)
    ->setValidationRules([
        new QuerySecurityRule(),
    ])
    ->setFieldMiddleware([
        new ValidateRequestMiddleware(),
    ]);
Dengan cara ini, kami boleh memastikan API kami selamat dan hanya menjawab permintaan pertanyaan yang sah. Di atas ialah kandungan asas menulis API menggunakan perisian tengah GraphQL dalam PHP. Menggunakan perisian tengah boleh memudahkan kod dan membantu kami mengurus proses pemindahan data dengan lebih baik. Untuk pemahaman yang lebih mendalam tentang GraphQL dan PHP, lihat dokumentasi rasmi dan kod sampel untuk lebih banyak kaedah dan petua.

Atas ialah kandungan terperinci Bagaimana untuk menulis API menggunakan perisian tengah GraphQL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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