Tìm hiểu GraphQL (Phần 4): GraphQL with Nodejs
Trở lại với GraphQL nào Trong bài viết này, mình sẽ trình bày cách xây dựng một máy chủ GraphQL với graphql-yoga graphql-yoga Máy chủ GraphQL đầy đủ tính năng với trọng tâm là thiết lập dễ dàng, hiệu suất và nâng cao trải nghiệm. Graphql-yoga được xây dựng trên một loạt các gói khác, ...
Trở lại với GraphQL nào
Trong bài viết này, mình sẽ trình bày cách xây dựng một máy chủ GraphQL với graphql-yoga
graphql-yoga
Máy chủ GraphQL đầy đủ tính năng với trọng tâm là thiết lập dễ dàng, hiệu suất và nâng cao trải nghiệm.
Graphql-yoga được xây dựng trên một loạt các gói khác, chẳng hạn như graphql.js, express và apollo-server.
Mỗi một trong số này cung cấp một phần chức năng nhất định cần thiết để xây dựng một máy chủ GraphQL.
Bắt đầu nào
Creating the project
mkdir demo_graph_node cd demo_graph_node npm init -y
mkdir src touch src/index.js
npm install graphql-yoga
Một số tính năng của graphql-yoga
- Tuân thủ đặc tả GraphQL
- Hổ trợ upload file
- Realtime với GraphQL subscriptions
- .....
Hello world
src/index.js
const { GraphQLServer } = require('graphql-yoga') const typeDefs = ` type Query { info: String! } ` const resolvers = { Query: { info: () => `Hello world` } } const server = new GraphQLServer({ typeDefs, resolvers, }) server.start(() => console.log(`Server is running on http://localhost:4000`))
Hằng số typeDefs định nghĩa lược đồ GraphQL của bạn. Ở đây, nó định nghĩa một Query type đơn giản với một field được gọi là info, field này có kiểu String !.
Đối tượng resolvers là việc triển khai thực tế lược đồ GraphQL. Như đã nói ở trước, thì mỗi field cần một resolver cho nó.
Cuối cùng, GraphQL schema và các resolvers được đóng gói và chuyển tới GraphQLServer được import từ graphql-yoga. Điều này cho máy chủ biết các hoạt động API được chấp nhận và cách chúng được giải quyết.
Kiểm tra xem chạy được chưa nào