API Oluşturma
API OluşturmaHTTP Önbellekleme Ekleme

HTTP Önbellekleme Ekleme

Queries, GraphQL sunucusuna GET kullanılarak çalıştırıldığında (daha geleneksel POST yöntemi yerine), GraphQL yanıtı standart HTTP önbelleklemesine dayanarak istemci tarafında veya istemci ile sunucu arasındaki ara aşamalarda (CDN gibi) önbelleğe alınabilir.

Bu, persisted queries için doğal olarak çalışır; single endpoint ve custom endpoint'ler için ise endpoint'e ?query={ GraphQL query } parametresi eklenerek çalışabilir.

Yapılandırma bir önbellek kontrol listesi aracılığıyla oluşturulur ve şema yapılandırması üzerinden endpoint'e iletilir.

Endpoint'i GET ile Çalıştırma

Persisted queries, GraphQL sorgusunu sunucuda depoladıkları için (yani isteğin gövdesinde sağlanması gerekmez) GET ile çalıştırılmaya zaten uygundur.

Ancak single endpoint ve custom endpoint'ler için sorgu, endpoint URL'sine eklenen ?query=... parametresi altında sağlanmalıdır.

Örneğin, aşağıdaki GraphQL sorgusu:

{
  posts {
    id
    title
    url
    author {
      id
      name
      url
    }
  }
}

...single endpoint'e karşı GET ile şu şekilde çalıştırılabilir:

https://mysite.com/graphql/?query={ posts { id title url author { id name url } } }

Otomatik Max-Age Hesaplama

Yanıtın max-age değeri, endpoint'e atanan erişim kontrol listelerinden (şema yapılandırması aracılığıyla) otomatik olarak hesaplanır.

Bu değer, istenen sorgudaki tüm alanlar ve direktifler arasındaki en düşük max-age değeridir veya aşağıdaki durumlarda no-store olur:

  • herhangi bir mutation çalıştırılırsa
  • herhangi bir alan veya direktifin max-age değeri 0 ise
  • bir erişim kontrol kuralının herhangi bir alan veya direktif için kullanıcı durumunu kontrol etmesi gerekiyorsa (bu durumda yanıt kullanıcıya özeldir, dolayısıyla önbelleğe alınamaz)

Varsayılan Max-Age

Belirli bir max-age atanmamış alanlar, Şema Yapılandırmasında tanımlanan varsayılan değeri kullanır:

Şema Yapılandırmasındaki varsayılan max-age değeri

Ayarlanmamışsa, Ayarlar sayfasındaki "Cache Control" sekmesinde tanımlanan varsayılan max-age değeri kullanılır. 86400 saniye olan bu değer Ayarlar'dan değiştirilebilir.

Örnek

Diyelim ki User türünün alanları için aşağıdaki max-age değer yapılandırmasına sahibiz:

  • name => 600
  • url => 30

O zaman bu querynin yanıtı max-age değerine 86400 sahip olacaktır (çünkü displayName veya email yapılandırılmamış, bu nedenle varsayılan değeri kullanırlar):

query {
  users {
    displayName
    email
  }
}

Bu querynin yanıtı max-age değerine 30 sahip olacaktır (yapılandırılmış tüm alanlar arasındaki en düşük değer olan url'ye karşılık gelir):

query {
  user(by: {id: 1}) {
    name
    url
  }
}

Bu querynin yanıtı max-age değerine no-store sahip olacaktır (çünkü me alanı kullanıcı durumu gerektirir):

query {
  me {
    name
    url
  }
}

Bu querynin yanıtı max-age değerine no-store sahip olacaktır (çünkü bir mutation çalıştırır):

mutation {
  createPost {
    id
  }
}

Tüm Önbellek Kontrol Listelerine Erişme

Eklenti menüsünde "Cache Control Lists" seçeneğine tıklandığında, oluşturulan tüm önbellek kontrol listelerinin listesi görüntülenir:

Yönetim panelindeki Önbellek Kontrol Listeleri
Yönetim panelindeki Önbellek Kontrol Listeleri

Yeni Bir Önbellek Kontrol Listesi Oluşturma

WordPress editörünü açmak için "Add New Cache Control List" düğmesine tıklayın:

Önbellek Kontrol Listesi Oluşturma

Önbellek kontrol listesine bir başlık verin, alanlar ve direktiflerle girişler ekleyin ve bunlar için max-age değerini yapılandırın:

Önbellek Kontrol Listesi Oluşturma

Hazır olduğunda Publish düğmesine tıklayın. Ardından yeni önbellek kontrol listesi şema yapılandırması için kullanılabilir hale gelir.

Cache Control Girişleri

Her Önbellek Kontrol Listesi, her biri aşağıdaki öğeleri içeren bir veya daha fazla girişten oluşur:

  • Önbellekleme yapılandırılacak alanlar
  • Önbellekleme yapılandırılacak direktifler
  • Bunlar için max-age değeri

Erişim kontrol girişi

Arayüzlerden Alan Seçme

Türlerin alanlarına ek olarak, arayüzlerden de alan seçebiliriz. Bu durumda max-age değeri, arayüzü uygulayan herhangi bir türden bu alanlar sorgulandığında uygulanır.

Bir arayüzden alan seçme
Bir arayüzden alan seçme

Önbellek Kontrol Listesini Açıklama

Önbellek kontrol listesine bir açıklama vermek için Belge ayarları panelindeki "Excerpt" alanını kullanın.

Daha fazla bilgi için API'ye açıklama ekleme kılavuzuna bakın.

Önbellek Kontrol Listesini Kullanma

Önbellek kontrol listesi oluşturulduktan sonra, Custom Endpoint veya Persisted Query'nin bunu kullanmasını sağlamak için ilgili Şema Yapılandırmasını düzenleyerek "Cache Control Lists" bloğundaki listeden ACL'yi seçebiliriz.

Şema Yapılandırmasında Önbellek Kontrol Listesi Seçme

Yapılandırma özelleştirilmezse, Ayarlar sayfasında "Cache Control" sekmesi altında tanımlanan varsayılan Önbellek Kontrol Listeleri kullanılır:

Ayarlar sayfasında varsayılan Önbellek Kontrol Listelerini Seçme