GraphQL là gì? Khởi đầu có GraphQL

Chào mọi người. Sau thời điểm tìm hiểu về GraphQL, mình xin mạo muội chia sẻ chút tri thức về nó cho mọi người cùng tiếp cận và bí quyết dùng GraphQL như thế nào nhé.

I. Giới thiệu về GraphQL

1.1 Tổng quan

GraphQL là ngôn ngữ thực hiện và truy vấn dữ liệu nguồn mở cho API, phân phối cho consumer 1 bí quyết thức dễ dàng để request chính xác những gì họ cần, giúp việc phát triển thành API dễ dàng hơn theo thời kì. GraphQL được Fb phát triển thành nội bộ vào 5 2012 trước lúc phát hành công khai vào 5 2015.

GraphQL bao gồm 3 điểm đặc thù bao gồm:

  • Cho phép consumer xác định chính xác những dữ liệu gì họ cần
  • GraphQL khiến cho việc tổng hợp dữ liệu từ nhiều nguồn dễ dàng hơn
  • Dùng 1 kind system để khai báo dữ liệu.

1.2 Trả về chính xác những gì bạn gửi request

  • Lúc bạn gửi 1 request GraphQL tới API của bạn, bạn sẽ nhận được chính xác những gì bạn đề nghị trong request, ko hơn ko kém.
  • Những truy vấn GraphQL luôn trả về kết quả có thể dự đoán được.
  • Những ứng dụng dùng GraphQL siêu nhanh và ổn định vì GraphQL kiểm soát dữ liệu mà nó nhận được chứ ko buộc phải máy chủ.

GraphQL Query

1.3 Nhận nhiều dữ liệu trong 1 request duy nhất

  • Những câu question GraphQL ko chỉ có thể truy xuất những thuộc tính của 1 dữ liệu mà còn khiến việc trơn tru có những đối tượng khác.
  • Trong lúc những API REST chúng ta hay dùng buộc phải đề nghị request từ nhiều URL thì API GraphQL lại có thể lấy toàn bộ dữ liệu mà ứng dụng của bạn cần trong 1 request duy nhất.
  • Những ứng dụng dùng GraphQL có tốc độ xử lý siêu nhanh ngay cả trên những kết nối chậm. Nhận nhiều dữ liệu trong 1 request duy nhất
Xem Thêm  Tìm hiểu công thức tính giá trị hiện tại của dòng tiền chuẩn

1.4 Mô tả những gì có thể có 1 kind system

  • API GraphQL được tổ chức theo sorts và fields, truy cập toàn bộ dữ liệu của bạn từ 1 endpoint duy nhất.
  • GraphQL dùng những sorts để đảm bảo ứng dụng của bạn chỉ request những gì có thể, bên cạnh ra GraphQL còn giải thích những lỗi 1 bí quyết siêu dễ hiểu.
  • Ứng dụng của bạn có thể dùng những sorts để giảm thiểu viết code phân tách cú pháp thủ công. Mô tả những gì có thể với một type system

OK, như vậy sau 1 hồi đọc lý thuyết thì cũng lời yêu cầu chút thực hành để rõ hơn người sử dụng nhỉ?

II. Khởi đầu có GraphQL:

2.1 Chuẩn bị

Sở hữu GraphQL bạn có thể code bằng nhiều ngôn ngữ khác nhau, như: C# / .NET, Go, Java, PHP, Python, Ruby, Perl, … Khách hàng có thể tham khảo code demo tại đây: sentayho.com.vn/code/

Trong bài này mình dùng NodeJS 10.15.1 để demo.

2.2 Khởi tạo mission

Bí quyết đơn giản nhất để chạy máy chủ API GraphQL là dùng module specific (1 khuôn ứng dụng internet phổ thông} cho sentayho.com.vn). Bạn sẽ cần cài đặt thêm 2 package deal express-graphql, graphql.

  • specific: Chạy máy chủ internet và thực hành truy vấn quản lý có hàm graphql
  • express-graphql: Gắn máy chủ API GraphQL trên endpoint HTTP /graphql
  • graphql: Bundle để dùng API GraphQL

Chạy command line:

npm init npm set up specific express-graphql graphql -save

Hoặc tạo file sentayho.com.vn có nội dung:

{ “title”: “graph_ql”, “model”: “1.0.0”, “description”: “”, “primary”: “index.js”, “scripts”: { “check”: “echo “Error: no check specified” && exit 1″ }, “creator”: “”, “license”: “ISC”, “dependencies”: { “specific”: “^4.17.1”, “express-graphql”: “^0.11.0”, “graphql”: “^15.3.0” } }

Xem Thêm  Tìm hiểu về recreation 4d là gì | Sen Tây Hồ

2.3 Tạo server

Tiếp tới tạo file sentayho.com.vn để chạy server:

//Import những thư viện cần dùng var specific = require(‘specific’); var { graphqlHTTP } = require(‘express-graphql’); var { buildSchema } = require(‘graphql’); // Xây dựng 1 Schema, dùng ngôn ngữ Schema GraphQL var schema = buildSchema(` kind Question { good day: String } `); // Root phân phối chức năng phân giải cho từng endpoint API var root = { good day: () => { return ‘Hiya world!’; }, }; //Tạo server có specific var app = specific(); //Khai báo API graphql sentayho.com.vn(‘/graphql’, graphqlHTTP({ schema: schema, rootValue: root, graphiql: true, //dùng công cụ GraphiQL để đưa ra những question GraphQL theo bí quyết thủ công })); // Khởi tạo server tại port 4000 sentayho.com.vnen(4000); sentayho.com.vn(‘Operating a GraphQL API server at http://localhost:4000/graphql’);

2.4 Begin server

Sau thời điểm đã tạo được file server, mình sẽ khởi chạy server node vừa tạo có command:

node sentayho.com.vn

2.5 Check

Giả dụ bạn truy cập trong trình thông qua internet http://localhost:4000/graphql, bạn sẽ thấy 1 giao diện cho phép bạn nhập những truy vấn.

Trên browser: Demo GraphQL

Check trên Postman:

GraphiQL là 1 công cụ tuyệt vời để debug và đánh giá server, vì vậy mình khuyên bạn nên chạy nó bất cứ lúc nào ứng dụng của bạn trên chế độ develop.

Như vậy, mình vừa check thử cho người sử dụng bí quyết chạy máy chủ và dùng trên giao diện GraphiQL để đưa ra những truy vấn. Bước tiếp theo là tìm hiểu bí quyết đưa ra những truy vấn GraphQL từ consumer.

GraphQL Purchasers

Thực hành check curl trên command line:

Xem Thêm  Tỷ suất là gì – WEB GIẢI ĐÁP

curl -X POST -H “Content material-Sort: software/json” -d ‘{“question”: “{ good day }”}’ http://localhost:4000/graphql

Knowledge response:

{“information”:{“good day”:”Hiya world!”}}

GraphQL Client

III. Tổng kết

Okay, Như vậy dựa trên tri thức của mình và những tài liệu tham khảo, mình đã giới thiệu tới người sử dụng về ngôn ngữ truy vấn GraphQL, có thể nói đây là 1 ngôn ngữ của tương lai 😄 theo mình có thời điểm hiện tại thì là như vậy!

Mong rằng sau bài viết này người sử dụng có thể tiếp cận được GraphQL 1 bí quyết nhanh chóng và dễ dàng hơn…

Cảm ơn người sử dụng đã đọc bài viết của mình!

Thao khảo

  1. https://graphql.org/
  2. https://topdev.vn/weblog/graphql/
  3. https://www.bravebits.co/bat-dau-voi-graphql-api/