Rumah > hujung hadapan web > tutorial css > Melaksanakan satu graphQL tunggal merentasi pelbagai sumber data

Melaksanakan satu graphQL tunggal merentasi pelbagai sumber data

Joseph Gordon-Levitt
Lepaskan: 2025-03-20 09:43:13
asal
686 orang telah melayarinya

Melaksanakan satu graphQL tunggal merentasi pelbagai sumber data

Artikel ini menunjukkan jahitan skema dalam pelbagai contoh fauna, mewujudkan API GraphQL bersatu dari sumber data yang berbeza. Kami juga akan meneroka menggabungkan fauna dengan perkhidmatan GraphQL yang lain.

Memahami jahitan skema

Jahitan Skema adalah teknik untuk membina API GraphQL tunggal dari pelbagai API GraphQL yang mendasari.

Mengapa menggunakan jahitan skema?

Aplikasi berskala besar sering menggunakan microservices untuk modularity. Walau bagaimanapun, aplikasi klien sering memerlukan data dari pelbagai sumber. API GraphQL bersatu menyediakan antara muka yang bersih, tetapi membina pelayan monolitik boleh menjadi masalah. GraphQL asli Fauna setiap pangkalan data adalah ideal, tetapi pelbagai pangkalan data memerlukan penyambungan ke pelbagai keadaan, mewujudkan gandingan yang ketat. Jahitan skema menyelesaikan ini dengan menggabungkan pelbagai perkhidmatan GraphQL ke dalam skema bersatu tunggal. Artikel ini merangkumi:

  1. Mengintegrasikan pelbagai contoh fauna ke dalam perkhidmatan GraphQL tunggal.
  2. Menggabungkan fauna dengan API GraphQL dan sumber data lain.
  3. Mewujudkan Gateway GraphQL tanpa pelayan menggunakan AWS Lambda.

Menyatukan pelbagai contoh fauna

Mari menggabungkan pelbagai contoh pangkalan data Fauna (misalnya, Product , Inventory , Review ) ke dalam perkhidmatan GraphQL tunggal. Setiap pangkalan data mempunyai API GRAPHQL sendiri (subgraph). Matlamat kami adalah graf bersatu untuk aplikasi klien untuk menanyakan data di semua sumber.

Grafik bersatu ini akan menjadi perkhidmatan gerbang kami. Kami akan membina ini menggunakan Node.js.

  1. Persediaan Projek: Buat Projek Node.js:

     mkdir my-gateway
    CD my-gateway
    npm init --yes
    Salin selepas log masuk
  2. Pasang Ketergantungan:

     NPM I Express Express-Graphql Graphql @Graphql-Tools/Skema @Graphql-Tools/Stitch @Graphql-Tools/Wrap Cross-Fetch--Save
    Salin selepas log masuk
  3. Server Graphql Asas (Gateway.js): Mulakan dengan pelayan GraphQL Express Mudah:

     // gateway.js (versi awal)
    // ... (persediaan pelayan ekspres) ...
    Salin selepas log masuk

    (Kod awal ini akan menjadi pelayan tulang telanjang, sama dengan contoh asal, tetapi ditinggalkan untuk keringkasan untuk memberi tumpuan kepada aspek jahitan.)

  4. Persediaan Pangkalan Data Fauna: Buat tiga pangkalan data Fauna ( Product , Inventory , Review ) dan menjana kunci admin. Tentukan skema GraphQL untuk setiap pangkalan data (seperti yang ditunjukkan dalam contoh asal).

  5. Peningkatan Perkhidmatan Gateway (Gateway.js): Melaksanakan jahitan skema menggunakan @graphql-tools/stitch . Bahagian ini akan merangkumi fungsi makeRemoteExecutor dan makeGatewaySchema seperti yang diterangkan dalam asal, tetapi dengan kejelasan yang lebih baik dan berpotensi refactored untuk dibaca yang lebih baik. Penambahbaikan utama ialah:

    • Komen yang lebih jelas menerangkan tujuan setiap fungsi.
    • Pengendalian ralat untuk panggilan API.
    • Konfigurasi kekunci API melalui pembolehubah persekitaran dan bukannya hardcoding.
  6. API Pihak Ketiga Jahitan: Memperluas Gateway untuk memasukkan API GraphQL pihak ketiga (misalnya, SpaceX API) menggunakan pendekatan makeRemoteExecutor dan stitchSchemas yang sama.

  7. Penyebaran ke AWS Lambda: Gunakan rangka kerja tanpa pelayan untuk menggunakan pintu masuk ke fungsi AWS Lambda. Pasang kebergantungan yang diperlukan ( serverless serverless-http , body-parser ). Buat fail serverless.yaml (seperti yang ditunjukkan dalam asal). Ubah suai gateway.js untuk mengintegrasikan dengan serverless-http untuk pengendalian fungsi lambda yang betul. Menggunakan menggunakan serverless deploy .

Kesimpulan

Jahitan Skema menawarkan penyelesaian yang kuat untuk membina API GraphQL yang berskala dan diselenggarakan dari pelbagai sumber data. Walaupun artikel ini menggunakan Fauna dan AWS Lambda, prinsip -prinsip ini digunakan secara meluas kepada perkhidmatan GraphQL yang lain dan platform tanpa pelayan. Pendekatan alternatif seperti Persekutuan Apollo menyediakan fungsi yang sama.

Atas ialah kandungan terperinci Melaksanakan satu graphQL tunggal merentasi pelbagai sumber data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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