API:Verileri önbelleğe alma
Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
Bir istemciden önbelleğe alma kontrolü
HTTP protokolü, tarayıcıların ve web proxy'lerinin Cache-Control
başlığına belirtilen çeşitli değerler aracılığıyla içeriği nasıl önbelleğe aldıklarının denetlenmesini sağlar.
(Bu yalnızca GET istekleri için çalışır.)
API, istemcinin API parametreleri maxage
ve smaxage
yoluyla bu değerlerden iki tanesini max-age
ve s-maxage
ayarlamasına olanak tanır.
maxage
, tarayıcıya yanıtın ne kadar süre saklanacağını söyler (saniye olarak).
smaxage
paylaşılan vekiller için aynı şeyi yapar. Uygulamada ikincisi, sunucu tarafı ters proxy'sine talimat vermek için kullanılır (örneğin, Wikimedia'nın Varnish ).
Hatalar asla önbelleğe alınmaz. Kullanıcıya özel yanıtlar, Cache-Control: private
olarak işaretlenir, böylece tarayıcı bunları önbelleğe alır, ancak genel proxy'ler bulamaz.
Şu anda, API varsayılan olarak giriş yapmış bir kullanıcının dil ayarını kullanmaktadır, bu yüzden giriş yapmış kullanıcılara verilen cevaplar her zaman özeldir.
Bu, uselang=content
API parametresi eklenerek önlenebilir (T97096).
Önbellek isabet oranını iyileştirme
İstek, yalnızca bu URL tam olarak önbelleğe alınmışsa önbellekten sunulur.
(Örneğin, maxage=1800
ile ve sonra maxage=3600
ile aynı isteği yaparsanız, ikincisi ilkinin önbellek girdisini kullanamaz çünkü farklı maxage
parametresi URL'yi farklı kılar.)
Bir sayfa listesini parametre olarak iletirseniz, bunları sıralayarak ve tekilleştirerek önbellek isabet oranını artırabilirsiniz.
Bir API modülünden önbelleğe alma kontrolü
Önbellekleme, ApiMain::setCache*
yöntemleriyle belirtilir.
Genellikle önbellekleme, yalnızca ApiQueryBase
devralması gereken getCacheMode
yöntemini kullanması gereken query alt modüllerinde bir endişe kaynağı olacaktır.