Persisted Queries
ใช้ GraphQL queries เพื่อสร้าง endpoint ที่กำหนดไว้ล่วงหน้าแบบ REST พร้อมรับประโยชน์จาก API ทั้งสองรูปแบบ

Click to watch tutorial video - 08:19
ใน REST API เราจะสร้าง endpoint หลายรายการ โดยแต่ละ endpoint จะส่งคืนชุดข้อมูลที่กำหนดไว้ล่วงหน้า ในทางตรงกันข้าม GraphQL API ช่วยให้เราส่ง query ใดก็ได้ไปยัง endpoint เดียว ซึ่งจะส่งคืนเฉพาะข้อมูลที่ร้องขอเท่านั้น
Persisted queries คือ GraphQL queries ทั่วไป แต่จะถูกจัดเก็บไว้บนเซิร์ฟเวอร์และเข้าถึงได้ผ่าน URL เฉพาะของตัวเอง จึงจำลองการทำงานของ REST endpoint ซึ่งให้ข้อดีจาก API ทั้งสองรูปแบบ ในขณะที่หลีกเลี่ยงข้อเสียของแต่ละรูปแบบ:
| ข้อดี | ข้อเสีย |
|---|---|
✅ เข้าถึงได้ผ่าน GET หรือ POST | POST เท่านั้น |
| ✅ สามารถ cache ได้บนเซิร์ฟเวอร์หรือ CDN | |
| ✅ ปลอดภัย: เปิดเผยเฉพาะข้อมูลที่ตั้งใจไว้ | |
| ✅ ไม่มีการดึงข้อมูลน้อยเกินหรือมากเกิน ข้อมูลทั้งหมดดึงได้ในคำขอเดียว | |
| ✅ รองรับการพัฒนา project อย่างรวดเร็ว | |
| ✅ รองรับการทำ self-documentation | |
| ✅ ให้ client สร้างและเผยแพร่ query ได้ |

เมื่อ persisted query ถูกเผยแพร่แล้ว เราสามารถรันได้ผ่าน permalink ของมัน
Persisted query สามารถรันได้ผ่าน GraphiQL client หรือโดยตรงในเบราว์เซอร์ (เนื่องจากเข้าถึงได้ผ่าน GET) และเราจะได้รับข้อมูลที่ร้องขอในรูปแบบ JSON:

Persisted queries สามารถจัดการได้ผ่านหมวดหมู่และลำดับชั้น
