API:Etiquette/tr

Bu sayfa, API kullanılırken uyulması gereken en iyi uygulamaları içerir.

Davranış


İstek sınırı
Okuma isteklerinde zor ve hızlı bir sınır yoktur, ancak düşünceli olun ve bir siteyi kaldırmamaya çalışın. Çoğu sistem hizmetlisi, sitelerinin kararlılığını tehlikeye atarsanız sizi belirsiz bir şekilde engelleme hakkını saklı tutar.

Yeni bir istek göndermeden önce bir isteğin bitmesini beklemek, isteklerinizi paralel yerine seri olarak yapmak güvenli bir talep oranıyla sonuçlanmalıdır. Ayrıca, bir istekte birden fazla öğe istemeniz de önerilir:


 * Her başlık için yeni bir istek yapmak yerine mümkün olduğunda boru karakterini kullanmak, örneğin.
 * Başka bir istekten her sonuç için istek yapmak yerine kullanmak.


 * Bant genişliği kullanımını azaltmak için  ayarlayarak API çağrıları yaparken GZip sıkıştırmasını kullanın.

Düzenleme yapan, durumu değiştiren veya başka bir şekilde salt okunur olmayan istekler, ücret sınırlamasına tabidir. Uygulanmakta olan kesin ücret sınırı, işlem türüne, kullanıcı haklarınıza ve istekte bulunduğunuz web sitesinin yapılandırmasına bağlı olabilir. Sizin için geçerli olan sınırlar, action=query&meta=userinfo&uiprop=ratelimits API uç noktasına erişilerek belirlenebilir.

İstek oranı sınırına ulaştığınızda,  hata koduyla bir  alırsınız. Bu hatayla karşılaştığınızda, bu isteği yeniden deneyebilirsiniz, ancak sonraki istekler arasındaki süreyi artırmalısınız. Bunun için ortak bir strateji Üstel geri çekilmedir.



Revizyonların ayrıştırılması
parametresini kullanarak belirli bir revizyon numarasından sonuçları sorgulamak mümkün olsa da, bu sunucular için pahalı bir işlemdir. Belirli bir düzeltmeyi almak için  parametresini kullanın. Örneğin:



Maxlag parametresi
Göreviniz etkileşimli değilse, yani bir kullanıcı sonucu beklemiyorsa,  parametresini kullanmalısınız. parametresinin değeri tamsayı saniye olmalıdır. Örneğin:

Bu, sunuculardaki yük yüksek olduğunda görevinizin çalışmasını engelleyecektir. Daha yüksek değerler daha agresif davranış anlamına gelir, daha düşük değerler daha iyidir.

Ayrıntılar için sayfasına bakın.



Kullanıcı-Aracı başlığı
Açıklayıcı bir Kullanıcı Aracısı başlığı ayarlamak en iyi yöntemdir. Bunu yapmak için  kullanın. Örneğin PHP'de:

Popüler bir web tarayıcısının kullanıcı aracısını kopyalamayın. Bu, bir sorun ortaya çıktığında nereden geldiğini takip etmenin kolay olmasını sağlar.

API'yi tarayıcı tabanlı JavaScript'ten çağırıyorsanız, tarayıcıya bağlı olarak  üst bilgisini etkileyemeyebilirsiniz. Bu sorunu gidermek için  üstbilgisini kullanın.

Daha fazla ayrıntı için m:Kullanıcı-Aracı politikası sayfasına bakın.



Veri biçimleri
Tüm yeni API kullanıcıları. Ayrıntılar için sayfasına bakın.

Performans
Eylem API'sini kullanarak verileri toplu olarak indirmek her zaman son derece verimli değildir. On Wikimedia wikis, there are faster ways to get data in bulk, see m:Research:Data and wikitech:Portal:Data Services for more details.

Other notes
If your requests obtain data that can be cached for a while, you should take steps to cache it, so you don't request the same data over and over again. Some clients may be able to cache data themselves, but for others (particularly JavaScript clients), this is not possible.

Per the HTTP specification, POST requests cannot be cached. Therefore, whenever you're reading data from the web service API, you should use GET requests, not POST.

Also note that a request cannot be served from cache unless the URL is exactly the same. If you make a request for, and cache the result, then a request for   will not go through the cache — even though MediaWiki returns the same data!

You should take care to normalize the URLs you send to the MediaWiki web service, so that slightly different user input won't cause you to waste time on unnecessary HTTP requests. You can normalize a list of page titles by removing duplicates and sorting the titles alphabetically. Similar techniques will work for other kinds of data.



Ayrıca bakınız

 * - Hızlı başlangıç kılavuzu.