Menambahkan cache HTTP
Ketika query dieksekusi terhadap server GraphQL menggunakan GET (sebagai pengganti metode POST yang lebih tradisional), respons GraphQL dapat di-cache di sisi klien atau pada tahap perantara antara klien dan server (seperti CDN), dengan mengandalkan cache HTTP standar.
Ini berjalan secara alami untuk persisted query, dan untuk single endpoint serta custom endpoint dapat bekerja dengan menambahkan parameter ?query={ GraphQL query } ke endpoint.
Konfigurasi dibuat melalui daftar kontrol cache, dan dikirimkan ke endpoint melalui konfigurasi skema.
Mengeksekusi endpoint melalui GET
Persisted query sudah cocok untuk dieksekusi melalui GET, karena menyimpan query GraphQL di server (yaitu tidak perlu disertakan dalam body permintaan).
Untuk single endpoint dan custom endpoint, query harus disertakan di bawah parameter ?query=... yang ditambahkan ke URL endpoint.
Sebagai contoh, query GraphQL berikut:
{
posts {
id
title
url
author {
id
name
url
}
}
}...dapat dieksekusi melalui GET terhadap single endpoint seperti ini:
https://mysite.com/graphql/?query={ posts { id title url author { id name url } } }
Perhitungan max-age otomatis
Nilai max-age respons dihitung secara otomatis dari daftar kontrol akses yang ditetapkan ke endpoint (melalui konfigurasi skema).
Nilai ini adalah nilai max-age terendah dari semua field dan directive dalam query yang diminta, atau no-store jika salah satu dari kondisi berikut terpenuhi:
- ada mutasi yang dieksekusi
- field atau directive mana pun memiliki
max-agedengan nilai0 - aturan kontrol akses harus memeriksa status pengguna untuk field atau directive mana pun (dalam hal ini, respons bersifat spesifik untuk pengguna, sehingga tidak dapat di-cache)
Max-age default
Field yang tidak memiliki max-age spesifik akan menggunakan nilai default, yang ditentukan dalam Konfigurasi Skema:

Jika tidak diatur, nilai max-age default yang ditentukan di halaman Pengaturan, di bawah tab "Cache Control", akan digunakan. Nilai ini, yaitu 86400 detik, dapat diubah di Pengaturan.
Contoh
Misalkan kita memiliki konfigurasi nilai max-age berikut untuk field dari tipe User:
name=>600url=>30
Maka, respons terhadap query ini akan memiliki nilai max-age yang diatur ke 86400 (karena baik displayName maupun email belum dikonfigurasi, sehingga menggunakan nilai default):
query {
users {
displayName
email
}
}Respons terhadap query ini akan memiliki nilai max-age yang diatur ke 30 (sesuai dengan url, yang merupakan nilai terendah dari semua field yang dikonfigurasi):
query {
user(by: {id: 1}) {
name
url
}
}Respons terhadap query ini akan memiliki nilai max-age yang diatur ke no-store (karena field me memerlukan status pengguna):
query {
me {
name
url
}
}Respons terhadap query ini akan memiliki nilai max-age yang diatur ke no-store (karena mengeksekusi mutasi):
mutation {
createPost {
id
}
}Mengakses semua daftar kontrol cache
Dengan mengeklik "Cache Control Lists" di menu plugin, daftar semua daftar kontrol cache yang telah dibuat akan ditampilkan:

Membuat daftar kontrol cache baru
Klik tombol "Add New Cache Control List" untuk membuka editor WordPress:

Berikan judul pada daftar kontrol cache, tambahkan entri dengan field dan directive, serta konfigurasikan nilai max-age untuk masing-masing:

Setelah siap, klik tombol Publish. Kemudian, daftar kontrol cache baru tersebut akan tersedia untuk konfigurasi skema.
Entri Cache Control
Setiap Cache Control List memuat satu atau banyak entri, masing-masing dengan elemen-elemen berikut:
- Field yang dikonfigurasi untuk cache
- Directive yang dikonfigurasi untuk cache
- Nilai
max-ageuntuk masing-masing

Memilih field dari interface
Selain field dari tipe, kita juga dapat memilih field dari interface. Dalam hal ini, nilai max-age diterapkan saat melakukan query pada field tersebut dari tipe apa pun yang mengimplementasikan interface tersebut.

Mendeskripsikan daftar kontrol cache
Gunakan field "Excerpt", dari panel pengaturan Dokumen, untuk memberikan deskripsi pada daftar kontrol cache.
Temukan informasi lebih lanjut di panduan Menambahkan deskripsi ke API.
Menggunakan daftar kontrol cache
Setelah membuat daftar kontrol cache, kita dapat membuat Custom Endpoint atau Persisted Query menggunakannya dengan mengedit Konfigurasi Skema yang sesuai, dan memilih ACL dari daftar di bawah blok "Cache Control Lists".

Jika tidak menyesuaikan konfigurasi, Cache Control Lists default yang ditentukan di halaman Pengaturan, di bawah tab "Cache Control", akan digunakan:
