Caching Resolusi Field
Penambahan direktif @cache ke skema GraphQL, yang menyimpan hasil dari sebuah field ke disk selama jumlah waktu yang diminta. Ketika menjalankan field yang sama dalam rentang waktu tersebut, nilai yang di-cache akan dikembalikan.
Tambahkan @cache ke field yang ingin di-cache dalam GraphQL query, dengan menentukan berapa lama (dalam detik) hasil tersebut harus di-cache.
Direktif ini dapat meningkatkan performa saat menjalankan operasi yang mahal (seperti saat berinteraksi dengan API eksternal), karena kita dapat menyimpan dan menggunakan kembali responsnya.
Contoh
@strTranslate terhubung ke Google Translate API. Dengan menggunakan @cache(time: 10), nilai terjemahan untuk field title akan di-cache selama 10 detik, dan menjalankan query yang sama lagi dalam rentang waktu ini akan menghindari koneksi ke Google Translate, sehingga menghasilkan resolusi yang sangat cepat.
query {
posts(pagination:{ limit: 3 }) {
id
title
@strTranslate(from: "en", to: "es")
@cache(time: 10)
}
}