Membina Pelayan GraphQL dengan Apollo
Laksanakan API GraphQL dalam Node.js menggunakan Apollo Server, sambungkannya kepada sumber data anda dan takrifkan penyelesai.
Membina Pelayan GraphQL dengan Apollo ialah pelajaran Kem Intensif Pembangunan Backend Node.js 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 Kem Intensif Pembangunan Backend Node.js, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.
Kenali Apollo Server
Selamat datang ke pembinaan pelayan GraphQL! Kita akan menggunakan Apollo Server, iaitu pustaka sumber terbuka yang popular untuk membantu anda melaksanakan API GraphQL sedia produksi dalam Node.js.
- Penyediaannya mudah.
- Ia berintegrasi dengan banyak rangka kerja Node.js seperti Express.
- Ia menyediakan alat berkuasa seperti GraphQL Playground untuk pengujian.
Apollo Server mengendalikan tugas yang rumit, supaya anda boleh menumpukan perhatian pada data anda.

Penyediaan Projek untuk Apollo
Mari kita mulakan dengan menyediakan projek kita. Buka terminal anda dan jalankan arahan berikut untuk mencipta projek Node.js baharu serta memasang pustaka yang diperlukan:
apollo-server: Pustaka teras untuk membina pelayan GraphQL kita.graphql: Pelaksanaan JavaScript bagi spesifikasi GraphQL.
Caranya adalah seperti berikut:
mkdir my-graphql-api
cd my-graphql-api
npm init -y
npm install apollo-server graphql
Setelah dipasang, anda sudah bersedia untuk menulis kod!
Skema dan Penyelesai: Teras
Pelayan GraphQL mempunyai dua bahagian utama:
- Skema (Takrifan Jenis): Bahagian ini mentakrifkan bentuk data anda dan operasi yang boleh dilakukan oleh klien (pertanyaan, mutasi). Anggaplah ia sebagai kontrak antara klien dengan pelayan.
- Penyelesai: Ini ialah fungsi yang memberitahu GraphQL cara mendapatkan data bagi setiap jenis dan medan yang ditakrifkan dalam skema anda. Penyelesai ialah "logik bahagian belakang" untuk API anda.
Kesemuanya mentakrifkan keupayaan API anda dan cara API berinteraksi dengan data anda.
Membina Skema GraphQL Anda
Kita mentakrifkan skema menggunakan teg literal templat khas yang dipanggil gql (daripada apollo-server). Teg ini membolehkan kita menulis Bahasa Takrifan Skema (SDL) GraphQL.
Jenis yang paling penting ialah Query, yang mentakrifkan semua cara klien boleh membaca data daripada API anda. Mari kita takrifkan Query ringkas yang mengembalikan mesej "hello".
const { gql } = require('apollo-server');
const typeDefs = gql`
type Query {
hello: String
}
`;
console.log('Your schema is ready!');Membina Penyelesai Anda
Sekarang kita telah mempunyai skema, kita perlu memberitahu GraphQL cara mendapatkan data sebenar untuk medan hello. Di sinilah penyelesai digunakan.
Penyelesai ialah fungsi yang sepadan dengan medan dalam skema anda. Apabila klien membuat pertanyaan hello, fungsi penyelesai yang sepadan akan dilaksanakan.
const resolvers = {
Query: {
hello: () => 'Hello from your GraphQL API!',
},
};
console.log('Resolvers are defined!');Melancarkan Pelayan Pertama Anda
Mari kita gabungkan semuanya! Kita akan menggabungkan typeDefs dan resolvers dengan ApolloServer untuk mencipta pelayan GraphQL yang lengkap dan boleh dijalankan.
Cipta fail bernama index.js dan tambahkan kod berikut. Kemudian, jalankannya dengan node index.js.
const { ApolloServer, gql } = require('apollo-server');
// 1. Define your schema (type definitions)
const typeDefs = gql`
type Query {
hello: String
}
`;
// 2. Define your resolvers (how to fetch data)
const resolvers = {
Query: {
hello: () => 'Hello from your GraphQL API!',
},
};
// 3. Create an Apollo Server instance
const server = new ApolloServer({ typeDefs, resolvers });
// 4. Start the server
server.listen({ port: 4000 }).then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
console.log('Try opening your browser to test it!');
});Mentakrifkan Jenis Data Tersuai
"hello" yang ringkas tidak begitu menarik. Mari kita takrifkan jenis tersuai seperti Book, dengan medan-medannya sendiri. Ini menunjukkan cara anda menstrukturkan data yang lebih kompleks.
Kemas kini typeDefs anda untuk memasukkan jenis Book dan pertanyaan books yang mengembalikan senarai buku.
const { gql } = require('apollo-server');
const typeDefs = gql`
type Book {
title: String
author: String
}
type Query {
hello: String
books: [Book]
}
`;
console.log('Schema updated with Book type!');Menyelesaikan Jenis Tersuai
Untuk membolehkan pertanyaan books berfungsi, kita perlu mengemas kini penyelesai kita. Buat masa ini, kita akan menggunakan tatasusunan objek dalam memori untuk mensimulasikan pangkalan data. Dalam aplikasi sebenar, penyelesai bersambung kepada pangkalan data atau API lain.
Mari kita kemas kini resolvers untuk menyediakan data bagi pertanyaan books kita.
const books = [
{
title: 'The Great Gatsby',
author: 'F. Scott Fitzgerald',
},
{
title: 'To Kill a Mockingbird',
author: 'Harper Lee',
},
];
const resolvers = {
Query: {
hello: () => 'Hello from your GraphQL API!',
books: () => books,
},
};
console.log('Resolvers updated for books!');API Lengkap dengan Buku
Berikut ialah fail index.js lengkap dengan jenis Book baharu dan penyelesainya. Jalankan fail ini dengan node index.js.
Setelah berjalan, buka URL tersebut dalam pelayar anda (contohnya, http://localhost:4000). Anda akan melihat GraphQL Playground, tempat anda boleh menguji pertanyaan seperti:
query {
books {
title
author
}
}
const { ApolloServer, gql } = require('apollo-server');
const typeDefs = gql`
type Book {
title: String
author: String
}
type Query {
hello: String
books: [Book]
}
`;
const books = [
{
title: 'The Great Gatsby',
author: 'F. Scott Fitzgerald',
},
{
title: 'To Kill a Mockingbird',
author: 'Harper Lee',
},
];
const resolvers = {
Query: {
hello: () => 'Hello from your GraphQL API!',
books: () => books,
},
};
const server = new ApolloServer({ typeDefs, resolvers });
server.listen({ port: 4000 }).then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
console.log('Explore your API in GraphQL Playground!');
});Semakan Skema berbanding Penyelesai
Anda telah mempelajari dua bahagian asas pelayan GraphQL: skema (takrifan jenis) dan penyelesai.
Antara berikut, yang manakah paling tepat menerangkan peranan utama Penyelesai GraphQL dalam Apollo Server?
Imbas Kembali Pantas Apollo Server
Tahniah! Anda telah berjaya membina pelayan GraphQL pertama anda dengan Apollo Server.
- Kami memasang
apollo-serverdangraphql. - Kami mentakrifkan struktur API menggunakan Takrifan Jenis (
typeDefs) yang ditulis dalam SDL GraphQL. - Kami melaksanakan Penyelesai untuk menentukan cara mendapatkan data bagi medan dalam skema kami, menggunakan data olok-olok.
- Kami melancarkan pelayan menggunakan
ApolloServerdan menerokainya dengan GraphQL Playground.
Ini ialah asas untuk membina API GraphQL yang berkuasa dan fleksibel. Seterusnya, anda boleh meneroka mutasi, argumen dan penyambungan kepada pangkalan data sebenar!
Pelajari JavaScript 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
- 22
- Pelajaran
- 92
Soalan Lazim
Adakah pelajaran “Membina Pelayan GraphQL dengan Apollo” percuma?
Ya — teks penuh “Membina Pelayan GraphQL dengan Apollo” 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 Kem Intensif Pembangunan Backend Node.js, tingkat taraf kepada CoddyKit PRO. Kursus Kem Intensif Pembangunan Backend Node.js merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Membina Pelayan GraphQL dengan Apollo”?
Laksanakan API GraphQL dalam Node.js menggunakan Apollo Server, sambungkannya kepada sumber data anda dan takrifkan penyelesai. Anda berlatih Kem Intensif Pembangunan Backend Node.js 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 Kem Intensif Pembangunan Backend Node.js?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Backend Node.js 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 “Membina Pelayan GraphQL dengan Apollo” 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 Kem Intensif Pembangunan Backend Node.js ini?
Ya. Setiap pelajaran Kem Intensif Pembangunan Backend Node.js 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 Tanpa Pelayan dengan Node.js
- Prinsip Reka Bentuk API GraphQL
- Membina Pelayan GraphQL dengan Apollo
- Langganan GraphQL untuk Data Masa Nyata