Persisted Queries
Sử dụng GraphQL queries để tạo các endpoint được định nghĩa sẵn như trong REST, đồng thời tận dụng ưu điểm của cả hai API.

Click to watch tutorial video - 08:19
Trong một REST API, chúng ta tạo nhiều endpoint, mỗi endpoint trả về một tập dữ liệu được định nghĩa sẵn. Trong một GraphQL API, ngược lại, chúng ta gửi bất kỳ query nào đến một endpoint duy nhất, và endpoint đó sẽ trả về chính xác dữ liệu được yêu cầu.
Persisted queries là các GraphQL queries thông thường, tuy nhiên chúng được lưu trữ trên máy chủ và có thể truy cập thông qua URL riêng của chúng, qua đó mô phỏng một REST endpoint. Chúng cung cấp những ưu điểm của cả hai API, đồng thời tránh được những nhược điểm của chúng:
| Ưu điểm | Nhược điểm |
|---|---|
✅ Truy cập được qua GET hoặc POST | POST |
| ✅ Có thể được cache trên máy chủ hoặc CDN | |
| ✅ An toàn: chỉ dữ liệu dự định mới được hiển thị | |
| ✅ Không lấy thiếu hay thừa dữ liệu, toàn bộ dữ liệu được lấy trong một request duy nhất | |
| ✅ Cho phép lặp lại dự án nhanh chóng | |
| ✅ Có thể tự tạo tài liệu | |
| ✅ Cung cấp cho client khả năng tạo và xuất bản query |

Sau khi persisted query được xuất bản, chúng ta có thể thực thi nó thông qua permalink của nó.
Persisted query có thể được thực thi qua GraphiQL client, hoặc cũng có thể trực tiếp trên trình duyệt (vì nó được truy cập qua GET), và chúng ta sẽ nhận được dữ liệu được yêu cầu ở định dạng JSON:

Các persisted queries có thể được quản lý theo danh mục và phân cấp.
