Cache Control
Saat menjalankan query terhadap server GraphQL melalui metode GET, respons GraphQL dapat di-cache di sisi klien atau pada tahap perantara antara klien dan server (seperti CDN), dengan mengandalkan caching HTTP standar.
Ini bekerja secara alami untuk persisted queries, dan untuk single endpoint serta custom endpoint bekerja dengan menambahkan parameter ?query={ GraphQL query } ke endpoint.
Deskripsi
Caching HTTP bekerja dengan mengirimkan header Cache-Control beserta nilai max-age dalam respons, yang menunjukkan berapa lama respons harus di-cache.
Ekstensi Cache Control menawarkan Cache Control Lists, di mana nilai max-age kustom didefinisikan untuk field dan directive. Oleh karena itu, query yang berbeda yang mengandung kombinasi field dan directive yang berbeda akan menghasilkan nilai max-age yang berbeda pula.
Nilai max-age respons dihitung secara otomatis oleh mesin GraphQL. Nilainya adalah max-age terendah dari semua field dan directive dalam query yang diminta (sebagaimana didefinisikan dalam Cache Control List), atau no-store jika salah satu kondisi berikut terpenuhi:
- ada mutasi yang dijalankan
- ada field atau directive yang memiliki
max-agedengan nilai0 - aturan Access Control harus memeriksa status pengguna untuk field atau directive tertentu (dalam hal ini, respons bersifat spesifik untuk pengguna sehingga tidak dapat di-cache)

Cache Control Lists
Sebuah Custom Post Type "Cache Control List" baru ditambahkan ke situs. Kita dapat menelusuri entri-entrinya di halaman "Cache Control Lists" pada menu, dan mengklik "Add New Cache Control List" untuk menambahkan entri baru di editor.


Setiap Cache Control List berisi satu atau beberapa entri, masing-masing dengan elemen-elemen berikut:
- Field dan directive yang, jika muncul dalam GraphQL query, akan mengaktifkan max-age yang dipilih
- max-age

Setelah membuat Cache Control List, kita dapat membuat endpoint menggunakannya dengan mengedit Schema Configuration yang sesuai, dan memilih item dari daftar di bawah blok "Cache Control Lists".
