Penyediaan dan Pengurusan Gerbang
Konfigurasikan dan lancarkan Gerbang Apollo untuk menggubah serta mendedahkan subgraf bersekutu anda sebagai satu graf bersatu.
Penyediaan dan Pengurusan Gerbang ialah pelajaran API GraphQL dengan Spring Boot percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran API GraphQL dengan Spring Boot, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus API GraphQL dengan Spring Boot merangkumi sejumlah 4 pelajaran.
Gateway: API Bersatu
Dalam GraphQL Federation, Apollo Gateway bertindak sebagai titik masuk pusat untuk semua aplikasi klien. Anggaplah ia sebagai otak yang memahami keseluruhan supergraf anda.
Ia mengambil berbilang perkhidmatan GraphQL bebas (dipanggil subgraf) dan menggabungkan skema mereka menjadi satu skema bersatu yang menghadap klien.
Mengapa Gateway Penting
Dengan seni bina perkhidmatan mikro, anda mungkin mempunyai banyak perkhidmatan belakang tabir, setiap satunya dengan API GraphQL sendiri. Tanpa gateway, klien perlu mengetahui dan membuat pertanyaan kepada setiap perkhidmatan secara berasingan.
- Rangka Akhir Bersatu: Klien berinteraksi dengan satu API GraphQL.
- Gubahan Skema: Gateway mencantumkan skema daripada semua subgraf secara automatik.
- Logik Klien yang Dipermudah: Klien tidak perlu mengetahui perkhidmatan yang memiliki data tertentu.
Cara Gateway Berfungsi
Apabila klien menghantar pertanyaan kepada gateway, perkara berikut berlaku:
- Gateway menerima pertanyaan.
- Ia menganalisis pertanyaan berdasarkan skema supergraf yang digubah.
- Ia memecahkan pertanyaan kepada bahagian yang lebih kecil dan menentukan subgraf yang memiliki setiap bahagian data.
- Ia menghantar subpertanyaan kepada subgraf yang berkaitan.
- Kemudian, ia menggabungkan hasil daripada subgraf ini menjadi satu respons untuk klien.
Pelaksanaan Gateway
Walaupun subgraf anda boleh dibina dengan Spring Boot (atau apa-apa rangka kerja lain), get laluan itu sendiri biasanya dilaksanakan menggunakan alat milik Apollo.
Pelaksanaan yang paling lazim dan kukuh ialah Apollo Server get laluan, iaitu pelayan berasaskan Node.js yang direka khusus untuk federasi. Pelajaran ini akan memfokuskan penyediaan get laluan standard ini.
Penyediaan Asas Get Laluan (Node.js)
Mari sediakan Apollo Gateway yang minimum. Mula-mula, cipta projek Node.js baharu dan pasang pakej yang diperlukan:
npm init -y
npm install @apollo/gateway apollo-serverKemudian, cipta fail index.js:
const { ApolloGateway, RemoteGraphQLDataSource } = require("@apollo/gateway");
const { ApolloServer } = require("apollo-server");
const gateway = new ApolloGateway({
serviceList: [
{ name: "products", url: "http://localhost:4001/graphql" },
],
buildService({ name, url }) {
return new RemoteGraphQLDataSource({ url });
},
});
const server = new ApolloServer({ gateway });
server.listen({
port: process.env.PORT || 4000
}).then(({ url }) => {
console.log(`🚀 Gateway ready at ${url}`);
});Mengkonfigurasi Subgraf
Dalam kod sebelumnya, tatasusunan serviceList amat penting. Tatasusunan ini memberitahu get laluan subgraf yang wujud dan tempat untuk mencarinya. Setiap objek dalam tatasusunan itu memerlukan dua sifat:
name: Pengecam unik untuk subgraf (contohnya,"products").url: Titik akhir tempat API GraphQL subgraf sedang berjalan (contohnya,"http://localhost:4001/graphql").
Menambah Lebih Banyak Subgraf
Apabila anda membangunkan lebih banyak perkhidmatan mikro dengan API GraphQL, anda hanya perlu menambahkannya pada serviceList. Get laluan akan mengarang skema mereka secara automatik menjadi graf yang disatukan.
Berikut ialah cara untuk menambah subgraf reviews yang berjalan pada port 4002:
const { ApolloGateway, RemoteGraphQLDataSource } = require("@apollo/gateway");
const { ApolloServer } = require("apollo-server");
const gateway = new ApolloGateway({
serviceList: [
{ name: "products", url: "http://localhost:4001/graphql" },
{ name: "reviews", url: "http://localhost:4002/graphql" },
],
buildService({ name, url }) {
return new RemoteGraphQLDataSource({ url });
},
});
const server = new ApolloServer({ gateway });
server.listen({
port: process.env.PORT || 4000
}).then(({ url }) => {
console.log(`🚀 Gateway ready at ${url}`);
});Menjalankan dan Mengakses Get Laluan
Setelah index.js anda disediakan, anda boleh memulakan get laluan:
node index.jsKonsol akan memaparkan URL tempat get laluan anda sedang berjalan, biasanya http://localhost:4000/. Buka URL ini dalam pelayar anda untuk mengakses Taman Permainan GraphQL atau antara muka GraphiQL yang disediakan oleh Apollo Server.
Membuat Pertanyaan pada Graf Disatukan
Klien akan menghantar pertanyaan GraphQL mereka terus kepada URL get laluan. Get laluan mengendalikan semua penghalaan dalaman dan pengambilan data daripada subgraf.
Contohnya, pertanyaan yang menggabungkan data daripada subgraf products dan reviews mungkin kelihatan seperti ini:
query GetProductDetails {
product(id: "prod-1") {
name
price
reviews {
id
rating
comment
}
}
}Petua Pengurusan Get Laluan
Selain penyediaan awal, pengurusan get laluan melibatkan beberapa amalan terbaik:
- Penerapan: Terapkan get laluan sebagai perkhidmatan kendiri, biasanya bersama subgraf anda.
- Pemantauan: Gunakan alat untuk memantau prestasi, kadar ralat dan kependamannya.
- Penskalaan: Get laluan boleh diskalakan secara mendatar untuk mengendalikan peningkatan trafik klien.
- Perubahan Skema: Pastikan get laluan anda dikonfigurasikan untuk mendapatkan kemas kini skema daripada subgraf dengan boleh dipercayai (contohnya, melalui Apollo Studio atau pendaftaran skema setempat).
Semakan Pantas: Peranan Get Laluan
Anda telah mempelajari tentang Apollo Gateway dan peranannya dalam federasi.
Imbas Kembali: Asas Get Laluan
Tahniah! Anda telah mempelajari tentang Apollo Gateway, komponen penting dalam GraphQL Federation. Ia menyediakan titik akhir API yang disatukan untuk klien, mengarang skema daripada pelbagai subgraf dengan lancar dan menghalakan pertanyaan dengan berkesan.
Dengan mengkonfigurasi serviceList, get laluan anda menjadi sumber kebenaran tunggal untuk keseluruhan supergraf anda, sekali gus memudahkan interaksi klien dan membolehkan seni bina perkhidmatan mikro yang kukuh.
Pelajari API GraphQL dengan Spring Boot dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Penyediaan dan Pengurusan Gerbang” percuma?
Ya — teks penuh “Penyediaan dan Pengurusan Gerbang” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus API GraphQL dengan Spring Boot, tingkat taraf kepada CoddyKit PRO. Kursus API GraphQL dengan Spring Boot merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penyediaan dan Pengurusan Gerbang”?
Konfigurasikan dan lancarkan Gerbang Apollo untuk menggubah serta mendedahkan subgraf bersekutu anda sebagai satu graf bersatu. Anda berlatih API GraphQL dengan Spring Boot menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan API GraphQL dengan Spring Boot?
Tiada pengalaman terdahulu diperlukan. Pembelajaran API GraphQL dengan Spring Boot di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Penyediaan dan Pengurusan Gerbang” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran API GraphQL dengan Spring Boot ini?
Ya. Setiap pelajaran API GraphQL dengan Spring Boot menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengenalan kepada Persekutuan Apollo
- Membina Subgraf Bersekutu
- Penyediaan dan Pengurusan Gerbang
- Rujukan Entiti dan Arahan @key