แคชชิ่ง
แคชชิ่งการแคชการแก้ไขฟิลด์

การแคชการแก้ไขฟิลด์

Included in the “Power Extensions” bundle

การเพิ่ม directive @cache ลงใน GraphQL schema ซึ่งจะเก็บผลลัพธ์จากฟิลด์ไว้ในดิสก์ตามระยะเวลาที่กำหนด เมื่อมีการเรียกใช้ฟิลด์เดิมภายในช่วงเวลานั้น ค่าที่แคชไว้จะถูกส่งคืน

เพิ่ม @cache ลงในฟิลด์ที่ต้องการแคชใน GraphQL query โดยระบุระยะเวลา (เป็นวินาที) ที่ต้องการเก็บผลลัพธ์ไว้ในแคช

directive นี้สามารถเพิ่มประสิทธิภาพได้เมื่อดำเนินการที่มีต้นทุนสูง (เช่น การโต้ตอบกับ API ภายนอก) เนื่องจากเราสามารถแคชและนำการตอบสนองกลับมาใช้ซ้ำได้

ตัวอย่าง

@strTranslate เชื่อมต่อกับ Google Translate API ด้วยการใช้ @cache(time: 10) ค่าที่แปลแล้วของฟิลด์ title จะถูกแคชไว้ 10 วินาที และการเรียกใช้ query เดิมซ้ำภายในช่วงเวลานี้จะหลีกเลี่ยงการเชื่อมต่อกับ Google Translate ส่งผลให้การแก้ไขทำงานได้รวดเร็วมาก

query {
  posts(pagination:{ limit: 3 }) {
    id
    title
      @strTranslate(from: "en", to: "es")
      @cache(time: 10)
  }
}