Menu

  • Trang chủ
  • Trending
  • Gợi ý bạn đọc

Chuyên mục

  • Tin tức
  • Hackintosh
  • Lập trình
  • Software
  • Thủ thuật
  • Chia sẻ
  • GenZA Can Cook
  • GenZA Beauty
  • Cảm nhận cuộc sống

Liên hệ hợp tác

admin@genzakit.com
Genzakit
Không có kết quả phù hợp
Xem tất cả kết quả
  • Đăng nhập
Genzakit
Không có kết quả phù hợp
Xem tất cả kết quả

GraphQL là gì? Áp dụng như thế nào?

392
CHIA SẺ
2.6k
LƯỢT XEM
Chia sẻ lên FacebookChia sẻ lên TwitterLưu lại trên Pinterest

GraphQL là gì?

GraphQL là Graph Query Language do Facebook tạo ra từ năm 2012 cung cấp giao thức chung cho phép giao tiếp giữa client và server để cập nhật và lấy dữ liệu.
Client truy vấn đến máy chủ GraphQL bằng các truy vấn với đặc điểm: format của dữ liệu trả về được mô tả trong câu truy vấn và được định nghĩa ở phía client thay vì ở server. Nói đơn giản hơn, đây là truy vấn hướng client, cấu trúc dữ liệu không khô cứng 1 khuôn mẫu từ server (REST API) mà thay đổi theo từng ngữ cảnh sao cho hiệu quả nhất đối với client mà chỉ cần dùng duy nhất 1 endpoint.

Tổng quan GraphQL

Điều quan trọng là GraphQL không phải là một ngôn ngữ truy vấn thực sự, nó chỉ là giao thức giao tiếp giữa client và server, rất cả client (web, mobile) đều có thể giao tiếp với bất kỳ server nào mà sử dụng ngôn ngữ GraphQL.
Khái niệm chính về GraphQL bao gồm:

  • Cấu trúc phân tầng (Hierarchical)
  • Hướng sản phẩm (Product0-centric)
  • Định kiểu mạnh (Strong-typing)
  • Truy vấn hướng client (Client-specified queries)
  • Nội quan (Introspective)

Các bạn có thể đọc thêm ở đây. Tuy nhiên theo mình thì ở mức sử dụng là không cần nghiên cứu tài liệu dài dòng đó.
Chú ý: mấy thuật ngữ trên khá khó để diễn tả, nên các bạn đọc từ từ sẽ hiểu, nếu bạn nào có từ hay vui lòng comment bên dưới bài nhé.

GraphQL giải quyết vấn đề gì

GraphQL khắc phục điểm yếu của của REST API bởi REST có tính chất dựa trên tài nguyên cố định, ví dụ:

GET /articles/1?include=author.name,author.email,likes.user.name

Như truy vấn trên thuộc loại liên kết nhiều bảng, REST API cho articles sẽ xử lý khá nhiều và không được linh động. Đối với GraphQL thì sẽ như sau:

{
  articles(id:1) {
    title,
    content,
    author {
      name,
      email
    },
    likes {
      user {
        name
      }
    }
  }
}

Với GraphQL, chúng ta quy định chỉ trả về title và content cho article, rất linh động và không bị thừa dữ liệu, hơn nữa cấu trúc trên nhìn khá rõ ràng mạch lạc.
Cũng giống như REST, GraphQL hoàn toàn có thể create, update, delete, nhưng với cấu trúc sáng sủa và cấu trúc phân tầng nên dễ dàng cho lập trình viên phía client.

Có nên áp dụng GraphQL không

Bạn nên áp dụng GraphQL nếu bạn có định hướng phát triển nhiều dòng sản phẩm, vì đặc tính của GraphQL là phục vụ client, nên càng nhiều client thì GraphQL càng tỏ rõ ưu điểm.

Source: FullstackStation
Từ khoá: apiGraphQLrest api
Next Post

Không đạt được 4000 giờ xem trên Youtube trong 1 năm liệu có phải làm lại trong năm tiếp theo?

Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Có thể bạn quan tâm

Cách làm lẩu Kim Chi cay ngon đúng điệu mà lại rẻ

Cách làm lẩu Kim Chi cay ngon đúng điệu mà lại rẻ

by Huệ Minh
17 Tháng Chín, 2021
0
2.6k

Lẩu kim chi là món ăn Hàn Quốc đã trở thành món ăn quen thuộc với nhiều người....

Cách làm đậu rim ngũ vị

Cách làm đậu rim ngũ vị

by Huệ Minh
24 Tháng Chín, 2021
0
2.6k

Quanh quẩn mãi với đậu rim cà chua hay canh đậu khiến vị giác có cảm giác bị...

Fix lỗi iGPU Intel UHD 530, 630 của chip Sky Lake, Coffee Lake màn hình giật trên Hackintosh

by Anthony Tran
28 Tháng Chín, 2021
0
3k

Rất nhiều report từ các bạn cài hackintosh dùng card tích hợp trong chip Intel UHD 530 hoặc...

Mẹo kiểm tra nhanh chiếc iPhone bạn đang dùng hoặc sắp mua là hàng chính hãng, tân trang hay đổi trả bảo hành

by Anthony Tran
15 Tháng Ba, 2020
0
2.6k

Khi lựa chọn một chiếc iPhone qua sử dụng, đa phần người dùng thường quan tâm tới yếu...

  • Giới thiệu
  • Liên hệ
  • Chính sách bảo mật

© 2023 Genzakit

Không có kết quả phù hợp
Xem tất cả kết quả
  • Trending
  • Gợi ý bạn đọc
  • Tin tức
  • Hackintosh
  • Lập trình
  • Software
  • Thủ thuật
  • Chia sẻ
  • GenZA Can Cook
  • GenZA Beauty
  • Vui mỗi ngày
  • Cảm nhận cuộc sống

© 2022 Genzakit - Ngôi nhà giới trẻ

Chào mừng trở lại!

Đăng nhập bằng Facebook
Sign In with Google
OR

Đăng nhập

Quên mật khẩu?

Retrieve your password

Please enter your username or email address to reset your password.

Đăng nhập
wpDiscuz