Graph Query Language do Facebook tạo ra từ năm 2012

Graph Query Language do Facebook tạo ra từ năm 2012

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.

Xem thêm >> Điểm mạnh của GraphQL

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.

graphql-la-gi

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 đó.

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

Hot girl

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.

Bạn thấy bài viết này như thế nào?: 
Average: 9.2 (25 votes)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Google chê Facebook là Social Network đã lỗi thời

Google chê Facebook là Social Network đã lỗi thời

Trong một cuộc phỏng vấn mới đây, một giám đốc điều hành của Google gọi đối thủ Facebook của mình là một mạng xã hội đã lỗi thời và gây phiền nhiễu người sử dụng bằng các quảng cáo.

Nguyễn Chí Thanh Chống mối giỏi qua mọi thập kỷ

Nguyễn Chí Thanh Chống mối giỏi qua mọi thập kỷ

Từ Thập niên 1970 Tiến Sĩ Nguyễn Chí Thanh là người đã nghiên cứu thành công đề tài Phòng Trừ Mối Cho Các Công Trình Xây Dựng và Kho Tàng

Hướng dẫn hiển thị profile G+ trên kết quả tìm kiếm

Hướng dẫn hiển thị profile G+ trên kết quả tìm kiếm

Trước đây, khi Google chưa cho phép dùng profile G+ làm hình ảnh đại diện trên kết quả search, mọi người thường dùng Rich Snippets để làm hiển thị hình ảnh, logo trên kết quả tìm kiếm. Rất đơn giản, chỉ cần chèn vào website đoạn code sau :

Công ty diệt chuột T&C

 

Diet con trung