- vừa được xem lúc

GraphQl và những ưu điểm - So sánh GraphQl và REST API

0 0 11

Người đăng: Harry

Theo Viblo Asia

GraphQL là gì?

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

QL viết tắt của từ query language nghĩa là ngôn ngữ truy vấn. Có thể hiểu nó giống như một câu truy vấn SQL nhưng không phải trên Table mà là trên các API( query language for APIs - các bạn có thể hiểu hơn qua ví dụ ở ⬇️). Nó không phải là một công nghệ thay thế REST API mà giống như một thư viện giúp khắc phục các vấn đề của REST.

1. Lịch sử ra đời GraphQL

  • REST API ra đời vào năm 2000, là 1 tiêu chuẩn chung của việc phát triển phần mềm, lập trình web. Kết hợp với HTTP method GET, POST, PUT, DELETE.
  • GraphQL ra đời năm 2015 được phát triển bởi Facebook và được open-source vào năm 2017 và đang phát triển nhanh chóng. GraphQL ra đời không phải để thay thế REST, nó như 1 thư viện bổ trợ cho REST. Bạn có thể dùng kết hợp giữa GraphQL và REST.

2. Ưu điểm của GraphQL

  • Có thể lấy chính xác dữ liệu mà Client cần thông qua câu truy vấn giúp nâng cao, cải thiện tốc độ truy vấn, tránh dư thừa dữ liệu không cần thiết: Ví dụ trong REST API thông thường, sẽ trả về kết quả có thể dư thừa hoặc thiếu. Ví dụ ca sĩ Mono muốn lấy thêm tên bài hát Waiting for you thì thông thường chúng ta phải chính sửa lại API để lấy thêm thông tin về bài hát

  • Đối với GraphQL chúng ta chỉ cần thêm thông tin cần lấy như sau:
  • Việc này giúp tiết kiệm và tái sử dụng các API của chúng ta giúp tiết kiệm quá trình phát triển xây dựng Backend.

3. Ví dụ

Môi trường Nodejs, JavaScript.

  • Cài đặt
npm init
npm install graphql --save
  • Tạo file index.js như sau
//Import các thư viện cần dùng
var express = require('express');
var { graphqlHTTP } = require('express-graphql');
var { buildSchema } = require('graphql'); // Xây dựng một Schema, sử dụng ngôn ngữ Schema GraphQL
var schema = buildSchema(` type Query { author: String, song:String }
`); // Root cung cấp chức năng phân giải cho mỗi endpoint API
var root = { author: () => { return 'Mono'; }, song: () => { return 'Waiting for you!'; },
}; //Tạo server với express
var app = express(); //Khai báo API graphql
app.use('/graphql', graphqlHTTP({ schema: schema, rootValue: root, graphiql: true, //sử dụng công cụ GraphiQL để đưa ra các query GraphQL theo cách thủ công
})); // Khởi tạo server tại port 4000
app.listen(4000);
console.log('Running a GraphQL API server at http://localhost:4000/graphql'); 
  • Run :
node index.js

Truy vấn postman hoặc trên http://localhost:4000/graphql(công cụ tích hợp, có thể truy vấn trực tiếp tại đây).

4. Kết luận

  • Đây là một công nghệ rất hữu ích. Các bạn nên thử áp dụng vào project của mình. 🔗link for detail: https://graphql.org/graphql-js/

Bình luận

Bài viết tương tự

- vừa được xem lúc

GraphQL vs REST APIs

Như chúng ta đã biết, REST là cách phổ biến nhất được hầu hết các nhà phát triển sử dụng để gửi dữ liệu thông qua HTTP. Và sự ra đời của GraphQL được coi như là một công nghệ mang tính cách mạng thay

0 0 37

- vừa được xem lúc

Giới thiệu về GraphQL

Là một developer chắc hẳn bạn không còn xa lạ gì với khái niệm Rest API. Những đã bao giờ bạn tìm hiểu những khó khă và hạn chế khi làm việc với Rest API chưa? Và có một tiêu chuẩn nào đó để xây dựng

0 0 54

- vừa được xem lúc

GraphQL là gì? Bắt đầu với GraphQL

Chào mọi người. I. Giới thiệu về GraphQL. 1.

0 0 62

- vừa được xem lúc

Nestjs - Mèo đỏ BackEnd

. . Nestjs - Framework thần thánh đối đầu với ExpressJs:.

0 0 28

- vừa được xem lúc

GraphQL - Hiểu để hack (Phần 3)

I. Tổng quan.

0 0 9

- vừa được xem lúc

[GraphQL-P1]GraphQL API là gì và hoạt động như thế nào?

1. API là gì. . API cho phép các ứng dụng khác nhau chia sẻ dữ liệu và chức năng với nhau, giúp họ làm việc cùng nhau một cách hiệu quả.

0 0 6