Graphql là gì

1. Giới thiệu về GraphQL

Graphquốc lộ là một Graph Query Language được dành riêng cho API. Nó được trở nên tân tiến vày Facebook cùng bây chừ nó được gia hạn vì chưng không ít tập đoàn, với phần đa cá thể bên trên khắp nhân loại. Graphquốc lộ tự lúc Thành lập đã gần như là thay thế trọn vẹn REST vì chưng sự tác dụng, mạnh bạo với linh 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 Ttốt thế cho REST

Vấn đề mà REST sẽ gặp buộc phải là nó Việc đánh giá tài liệu của REST trả về quá nhiều hay là thừa ít. Trong cả 2 ngôi trường hợp thì hiệu suất của ứng dụng số đông bị ảnh hưởng không hề ít.Giải pháp mà GraphQL đưa ra là chất nhận được knhì báo dữ liệu chỗ nhưng một client hoàn toàn có thể khẳng định đúng chuẩn dữ liệu nhưng mà mình bắt buộc xuất phát từ một API.

2.2 Defining Schema và Type system

Graphquốc lộ có một hệ thống riêng rẽ giành cho nó được thực hiện để 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 trong schema thì áp dụng GraphQL Schema Definition Language (SDL).

Schema này được dùng như là 1 bản thanh toán thân client và server để xác minh client hoàn toàn có thể truy cập dữ liệu thế nào. Sau đó team frontend hoàn toàn có thể moông xã data nhằm khám nghiệm những component, tuy nhiên tuy vậy đó team back-over cũng chuẩn bị quá trình cần thiết mang lại phía VPS.Dưới nầy là 1 ví dụ về kiểu cách nhưng bạn có thể thực hiện SDL nhằm xác minh nhiều loại của User với 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ỏng chúng ta đã thấy thì User có 4 ngôi trường là id, name với messages. Dấu " ! " tức thị ngôi trường đó sẽ phải nhập.
model được xác minh kia là một mã sản phẩm trong đại lý dữ liêu.
isUnique tức thị ngôi trường kia ko được trùng nhau. Giá trị ID thưởng thức là một trong những chuỗi bao gồm 25 kí tự. Các ngôi trường ID là trường được khái niệm của khối hệ thống và chỉ được áp dụng nội cỗ, vì thế ko được tạo thành những ngôi trường new cùng với nhiều loại ID.Với Graphquốc lộ nó rất có thể tạo thành các mối link giữa các type cùng nhau. Vì vậy User gồm ngôi trường messages là 1 trong mảng của Message với giống như như Message có ngôi trường sentBy links với bảng User.Từ ví dụ trên chúng ta đã và đang tạo nên một mang lại các mối quan hệ thân User và Message.

Xem thêm: Cách Cài Đặt Viber Cho Ipad, ‎Viber Messenger Trên App Store

2.3 Fetching Data (Query):

Graphquốc lộ thực hiện việc hấp thụ tài liệu không giống cù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 client để khẳng định hầu hết dữ liệu cần thiết. Vì rứa client bắt buộc đã cho thấy những trường cần thiết, như ví dụ dưới đây:

*
Tại ví dụ này, phía phía trái là tất cả gọi allUser là 1 trong những query nhưng mà được thực hiện để ao ước biết báo cáo của một User. Nlỗi bạn có thể thấy vào query này, mình đã tư tưởng trường name, bởi vì vậy làm việc kêt trái trả về phía bên tay yêu cầu chỉ duy nhất 1 ngôi trường name mà thôiVà họ có thêm 1 ví dụ nữa như sau:
*
Trong ví dụ này, tôi đã giới thiệu thêm một vài ngôi trường quan trọng. Chúng ta sẽ biết messages là 1 mô tả của Mã Sản Phẩm Message.

2.4 Mutations

Bây giờ họ đã biết cách fetch tài liệu cùng với Graphquốc lộ. Bây giờ đồng hồ bản thân đang reviews làm thế nào 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 loại là CREATE, UPDATE cùng DELETE.Mutation cũng đều có cú pháp hệt như Fetching Data(Query). Nhưng mutation luôn ban đầu với 1 từ bỏ khóa. Nlỗi ví dụ dưới đây:

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

2.5 Subscription & Realtime Updates:

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

subscription newUser name Sau khi client gửi một subscription mang lại hệ thống, 1 kết nối sẽ được mtrọng tâm bọn chúng. Sau kia bất cứ bao giờ có một mutaition được tạo ra bởi một new User, VPS sẽ gửi thoognt in về người tiêu dùng đó đến client.

Xem thêm: Thông Số Kỹ Thuật Xperia Z1, Sony Z1 Chính Hãng, Sony Xperia Z1

2.6 Updated Schema

Vậy là mình đã phân tích và lý giải dứt về các trang bị cơ bản về Query, Mutation cùng Subscription. Dưới đấy là khá đầy đủ một schema bao gôm Query Mutation với 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 nhằm bắt đầu cùng với GraphQL. Mình mới chỉ khám phá bắt buộc bài viết hơi sơ sử dụng, sau khi hiểu kĩ hơn bản thân sẽ có được những kiểm soát và điều chỉnh cho bạn gọi dễ hiểu.


Chuyên mục: Kiến thức