Cache Control
Podczas wykonywania queries na serwerze GraphQL metodą GET, odpowiedź GraphQL może być buforowana po stronie klienta lub na pośrednich etapach między klientem a serwerem (takich jak CDN), z wykorzystaniem standardowego buforowania HTTP.
Działa to naturalnie w przypadku utrwalonych queries, a dla pojedynczego endpointu i niestandardowych endpointów działa poprzez dodanie parametru ?query={ GraphQL query } do endpointu.
Opis
Buforowanie HTTP działa poprzez wysłanie nagłówka Cache-Control z wartością max-age w odpowiedzi, wskazując jak długo odpowiedź powinna być buforowana.
Rozszerzenie Cache Control oferuje Listy Cache Control, w których niestandardowe wartości max-age są definiowane dla pól i dyrektyw. Dlatego różne queries zawierające różne kombinacje pól i dyrektyw będą generować różną wartość max-age.
Wartość max-age odpowiedzi jest obliczana automatycznie przez silnik GraphQL. Jej wartość to najniższe max-age spośród wszystkich pól i dyrektyw w żądanym query (zgodnie z definicją na Liście Cache Control) lub no-store, jeśli:
- wykonywana jest jakakolwiek mutacja
- jakiekolwiek pole lub dyrektywa ma
max-ageo wartości0 - reguła Kontroli Dostępu musi sprawdzić stan użytkownika dla dowolnego pola lub dyrektywy (w takim przypadku odpowiedź jest specyficzna dla użytkownika i nie może być buforowana)

Listy Cache Control
Do witryny dodawany jest nowy Custom Post Type „Lista Cache Control". Możemy przeglądać jego wpisy na stronie „Listy Cache Control" w menu i kliknąć „Dodaj Nową Listę Cache Control", aby dodać nowy wpis w edytorze.


Każda Lista Cache Control zawiera jeden lub więcej wpisów, każdy z następującymi elementami:
- Pola i dyrektywy, które jeśli pojawią się w query GraphQL, powodują zastosowanie wybranego max-age
- Wartość max-age

Po utworzeniu Listy Cache Control możemy sprawić, aby endpoint z niej korzystał, edytując odpowiednią Konfigurację Schematu i wybierając element z listy w bloku „Listy Cache Control".
