12/08/2018, 18:10

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             </div>
            
            <div class=

0