GRAPHQL LÀ GÌ

  -  
1. Giới thiệu về GraphQL

GraphQL là một trong Graph Query Language được giành riêng cho API. Nó được cải cách và phát triển bởi Facebook và bây chừ nó được bảo trì bởi tương đối nhiều tập đoàn, cùng phần nhiều cá nhân bên trên khắp thế giới. Graphquốc lộ trường đoản cú khi Thành lập sẽ gần như là sửa chữa thay thế trọn vẹn REST vày sự tác dụng, mạnh bạo cùng linc hoạt hơn không hề ít.

Bạn đang xem: Graphql là gì

2. Những nhân kiệt của GraphQL

2.1 Txuất xắc gắng cho REST

Vấn đề mà lại REST sẽ gặp gỡ bắt buộc là nó câu hỏi ý kiến tài liệu của REST trả về quá nhiều hay là quá không nhiều. Trong cả hai ngôi trường hòa hợp thì năng suất của ứng dụng gần như bị tác động khá nhiều.Giải pháp nhưng mà GraphQL đưa ra là cho phép knhì báo dữ liệu khu vực nhưng mà một client rất có thể xác định đúng đắn tài liệu mà bản thân yêu cầu xuất phát từ một API.

2.2 Defining Schema and Type system

Graphquốc lộ có một khối hệ thống riêng dành cho nó được áp dụng nhằm xác định schema của một api. Tất cả type được liệt kê vào một API thì được viết vào schema thì áp dụng GraphQL Schema Definition Language (SDL).

Schema này được dùng như là một phiên bản giao dịch thân client cùng server nhằm xác minh client hoàn toàn có thể truy cập dữ liệu thế nào. Sau đó team frontend có thể moông xã data để soát sổ các component, tuy nhiên song đó team back-kết thúc cũng chuẩn bị các bước cần thiết mang đến phía server.Dưới nầy là 1 trong ví dụ về phong thái nhưng mà bạn cũng có thể thực hiện SDL nhằm xác minh một số loại của User cùng Message:

type User
Model id: ID!
isUnique name: String! messages:
relation(name: "MessagesFromUser")type Message
mã sản phẩm id: ID!
isUnique text: String! sentBy: User!
relation(name: "MessagesFromUser")Như chúng ta đã thấy thì User tất cả 4 trường là id, name với messages. Dấu " ! " tức là trường kia bắt buộc phải nhập.
Mã Sản Phẩm được xác minh đó là 1 mã sản phẩm trong các đại lý dữ liêu.
isUnique nghĩa là trường đó không được trùng nhau. Giá trị ID những hiểu biết là 1 chuỗi bao gồm 25 kí từ. Các trường ID là trường được có mang của hệ thống và chỉ còn được sử dụng nội bộ, vì thế không được tạo thành các trường bắt đầu với một số loại ID.Với Graphquốc lộ nó hoàn toàn có thể tạo ra các mối liên kết thân những type với nhau. Vì vậy User gồm trường messages là 1 trong những mảng của Message và giống như nhỏng Message bao gồm trường sentBy links cùng với bảng User.Từ ví dụ trên chúng ta đã và đang tạo thành một mang lại nhiều quan hệ thân User cùng Message.

Xem thêm: Thế Nào Là Chân Nhân Là Gì, Nghĩa Của Từ Chân Nhân Trong Tiếng Việt

2.3 Fetching Data (Query):

Graphquốc lộ sử dụng vấn đề nạp dữ liệu không giống với REST. Nó chí bao gồm tuyệt nhất 1 single endpont và trọn vẹn phụ thuộc vào vào client nhằm xác định phần lớn dữ liệu quan trọng. Vì rứa client nên chỉ ra rằng những trường cần thiết, nlỗi ví dụ bên dưới đây:

*
Tại ví dụ này, phía phía bên trái là bao gồm call allUser là một trong những query mà lại được áp dụng nhằm ý muốn biết thông báo của một User. Nhỏng bạn có thể thấy trong query này, mình đã có mang ngôi trường name, vày vậy sống kêt trái trả về phía mặt tay đề nghị chỉ tốt nhất 1 trường name mà lại thôiVà bọn họ gồm thêm một ví dụ nữa nhỏng sau:
*
Trong ví dụ này, tôi đã chỉ dẫn thêm một trong những trường cần thiết. Chúng ta vẫn biết messages là 1 trong biểu hiện của Model Message.

2.4 Mutations

Bây giờ đồng hồ họ đã biết phương pháp fetch tài liệu với GraphQL. Bây giờ đồng hồ mình vẫn trình làng làm sao nhằm gửi một data lên. Trong GraphQL viêc gửi các queries được Call là mutations. Các mutation này còn có 3 nhiều loại là CREATE, UPDATE với DELETE.Mutation cũng có cú pháp hệt như Fetching Data(Query). Nhưng mutation luôn luôn bước đầu với cùng một tự khóa. Nlỗi ví dụ bên dưới đây:

*
Cũng hệt như các ví dụ trước kia, mutation cũng có các ngôi trường, trong ngôi trường hợp này bản thân điện thoại tư vấn nó là createUser, ngôi trường này là 1 trong tham mê số nhằm hướng dẫn và chỉ định một new user.

2.5 Subscription and Realtime Updates:

Một đòi hỏi quan trọng không giống đối với các áp dụng kia đó là realtime, nhằm có thể kết nối mang lại máy chủ để sở hữu được ban bố về các sự kiện ngay mau lẹ. Trong trường đúng theo này, GraphQL hỗ trợ các quan niệm điện thoại tư vấn là subscriptions.Khi 1 client subscriptions một sự kiện, nó cũng bước đầu cùng giữ lại những liên kết mang lại VPS. Bất cứ khi nào sự kiện kia xảy ra, server vẫn đẩy dữ liệu khớp ứng mang đến client. Không giống như Query với Mutation, nó đi theo phong cách nlỗi “request-response-cycle”, nó sẽ subscriptions đại diện của luồng dữ liệu được gửi mang đến client.Subscriptions được viết bằng cách sử dụng cú pháp như Query với Mutation. Nlỗi ví dụ bên dưới đây:

subscription newUser name Sau Lúc client gửi một subscription cho server, 1 liên kết sẽ tiến hành mtrọng điểm chúng. Sau kia bất cứ lúc nào có 1 mutaition được tạo ra bởi một new User, VPS đã gửi thoognt in về người tiêu dùng kia mang đến client.

Xem thêm: Giá Trị Của Tình Yêu Thương Là Gì, Biểu Hiện Của Nó Như Thế Nào

2.6 Updated Schema

Vậy là tôi đã lý giải xong xuôi về số đông trang bị cơ phiên bản về Query, Mutation với Subscription. Dưới đó là không thiếu một schema bao gôm Query Mutation cùng Subscription:

type Query allUsers: !type Mutation createUser(name: String!): User!type Subscription newUser: User!type User
relation(name: "MessagesFromUser")}Trên là cơ bạn dạng để ban đầu cùng với GraphQL. Mình chỉ mới tìm hiểu đề nghị bài viết khá sơ dùng, sau khoản thời gian hiểu kĩ hơn bản thân sẽ có đầy đủ kiểm soát và điều chỉnh cho mình hiểu dễ hiểu.