API:Query
| Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
action=query modülü, belirli bir sayfanın vikimetini, bir sayfa grubunun bağlantıları ve kategorileri veya viki içeriğini değiştirmek için gereken anahtar gibi bir viki ve içinde depolanan veriler hakkında bilgi almanıza olanak tanır.
API belgesi
Sorgu modülleri
Sorgu modülünde üç tür alt modül vardır (sorgu modülleri olarak da adlandırılır):
- Viki ve giriş yapan kullanıcı hakkında Meta bilgisi.
- Sayfa revizyonları ve içerik dahil olmak üzere sayfaların özellikleri.
- Belirli ölçütlerle eşleşen sayfaların listesi.
Örnekler
Örnek 1: Sayfaları belirtme
Meta ve liste sorgu modüllerinden farklı olarak, tüm özellik sorgu modülleri, aşağıdaki yollardan biriyle belirtilebilen bir dizi sayfada çalışır:
titlesparametresini kullanarak ada göre, ör.titles=Foo|Bar|Main_Page.pageidsparametresini kullanarak sayfa kimliğine göre, ör.pageids=123|456|75915.revidsparametresini kullanarak revizyon kimliğiyle, ör.revids=478198|54872|54894545. Çoğu sorgu modülü, düzeltme kimliğini ilgili sayfa kimliğine dönüştürür. Revizyon kimliğinin kendisini yalnızca prop=revisions kullanır.- Bir jeneratör kullanma.
GET isteği
Yanıt
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 1130,
"ns": 0,
"title": "Avicenna"
},
{
"pageid": 17412,
"ns": 0,
"title": "Klein bottle"
},
{
"pageid": 33642,
"ns": 0,
"title": "Warrant"
}
]
}
}
Örnek 2: Başlık normalizasyonu
Başlık normalizasyonu sayfa başlıklarını kurallı biçimlerine dönüştürür.
Bu, ilk karakteri büyük harfe çevirme, alt çizgileri boşluklarla değiştirme ve ad alanını o viki için tanımlanan yerelleştirilmiş forma değiştirme anlamına gelir.
GET isteği
Yanıt
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "Project:articleA",
"to": "Wikipedia:ArticleA"
},
{
"fromencoded": false,
"from": "article_B",
"to": "Article B"
}
],
"pages": [
{
"ns": 0,
"title": "Article B",
"missing": true
},
{
"ns": 4,
"title": "Wikipedia:ArticleA",
"missing": true
}
]
}
}
Örnek 3: Eksik ve geçersiz başlıklar
Mevcut olmayan veya geçersiz başlıklarda yanıtta missing veya invalid bir özellik ayarlanmış olacaktır.
Sayısal dizi anahtarlarını destekleyen çıkış biçimlerinde, eksik ve geçersiz başlıkların negatif sayfa kimlikleri olacaktır.
In some cases, a title can be viewed by a user but cannot be accessed by the API, such as pages that mirror content from another wiki.
These titles will have a known attribute set in the response.
GET isteği
Yanıt
{
"batchcomplete": true,
"query": {
"pages": [
{
"ns": 0,
"title": "Doesntexist",
"missing": true
},
{
"title": "Talk:",
"invalidreason": "The requested page title is empty or contains only the name of a namespace.",
"invalid": true
},
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
Örnek 4: Devam eden sorgular
Bir sorguya yanıt olarak tüm veriler döndürülmediğinde, daha fazla veri olduğunu belirten continue niteliği olacaktır.
GET isteği
Yanıt
{
"continue": {
"accontinue": "List_of_largest_companies_in_Sri_Lanka",
"continue": "-||"
},
"query": {
"allcategories": [
{
"category": "List of BioWare characters"
},
{
"category": "List of Harlequin Romance novels"
},
{
"category": "List of MPs elected in UK elections templates"
},
{
"category": "List of Metamorphoses characters"
},
{
"category": "List of Rockstar Games characters"
},
{
"category": "List of Star Trek awards and nominations"
},
{
"category": "List of Swedish films of the 2020s"
},
{
"category": "List of association football clubs in the Republic of Ireland templates"
},
{
"category": "List of awards and nominations received by Aleksej Pechkuroy"
},
{
"category": "List of cabinet templates"
}
]
}
}
Daha fazla veri almak için, değerlerini orijinal isteğe ekleyin.
GET request
Response
{
"batchcomplete": true,
"query": {
"allcategories": [
{
"category": "List of largest companies in Sri Lanka"
},
{
"category": "List of longest beaches of the world"
},
{
"category": "List of ministers by ministry of Bangladesh"
},
{
"category": "List of people from Palm Beach, Florida"
},
{
"category": "List of video game characters"
}
]
}
}
Örnek 5: Toplu işlem tamamlama
API, geçerli öğe grubuna ilişkin tüm verilerin döndürüldüğünü belirtmek için batchcomplete öğesi döndürür.
MW 1.25+
Aşağıdaki örnek sorguya yanıt olarak, üç görüntünün her biri için tüm verilerin döndürüldüğünü göstermek için batchcomplete eklenmiştir.
Bir sonraki devam sonraki 3 resim kümesi için veri döndürmeye başlayacaktır.
GET isteği
Yanıt
{
"batchcomplete": true,
"continue": {
"aicontinue": "20020822143445|Do_You_Want_to_Know_a_Secret_(Beatles_song_-_sample).ogg",
"continue": "-||"
},
"query": {
"allimages": [
{
"name": "Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"timestamp": "2002-08-04T19:55:17Z",
"url": "https://upload.wikimedia.org/wikipedia/en/6/64/Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Mrs_Robinson.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67723",
"ns": 6,
"title": "File:Simon and Garfunkel - Mrs Robinson.ogg"
},
{
"name": "Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"timestamp": "2002-08-04T20:01:36Z",
"url": "https://upload.wikimedia.org/wikipedia/en/c/c1/Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Simon_and_Garfunkel_-_Scarborough_Fair.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=67779",
"ns": 6,
"title": "File:Simon and Garfunkel - Scarborough Fair.ogg"
},
{
"name": "Beatles_please_me.ogg",
"timestamp": "2002-08-22T14:34:00Z",
"url": "https://upload.wikimedia.org/wikipedia/en/e/ee/Beatles_please_me.ogg",
"descriptionurl": "https://en.wikipedia.org/wiki/File:Beatles_please_me.ogg",
"descriptionshorturl": "https://en.wikipedia.org/w/index.php?curid=74826",
"ns": 6,
"title": "File:Beatles please me.ogg"
}
]
}
}
Örnek 6: Jeneratörler
Bir dizi sayfa hakkında veri almak istiyorsanız jeneratörleri kullanın.
Örneğin, list=categorymembers sorgulamak ve sonra döndürülen tüm sayfalara ayarlanmış pageids ile tekrar sorgulamak yerine belirli bir kategorideki sayfalar hakkında veri almak için, iki API çağrısını generator=categorymembers kullanarak bir araya getirin.
Liste modülünü jeneratör olarak kullanırken, sayfaları belirtmenize gerek yoktur.
Ancak, bir özellik modülü için, jeneratörün üzerinde çalışacağı sayfaları belirtin.
Örneğin, ana sayfadan bağlantı verilen tüm sayfaları yüklemek için generator=links&titles=Main%20Page kullanın.
Bir jeneratöre iletilen parametrelerin önüne bir g eklenmelidir. Örneğin, generator=backlinks kullanırken, bllimit yerine gbllimit kullanın.
Aşağıdaki örnek sorgu "Ba" ile başlayan ana ad alanındaki ilk üç sayfanın bağlantılarını ve kategorilerini alır.
GET isteği
Yanıt
{
"continue": {
"plcontinue": "14977970|0|Kirkwall_Ba_game",
"continue": "||categories"
},
"query": {
"pages": [
{
"pageid": 98178,
"ns": 0,
"title": "Ba",
"links": [
{
"ns": 0,
"title": "BA"
},
{
"ns": 4,
"title": "Wikipedia:Mainspace"
},
{
"ns": 4,
"title": "Wikipedia:Naming conventions (capitalization)"
},
{
"ns": 4,
"title": "Wikipedia:Protection policy"
},
{
"ns": 4,
"title": "Wikipedia:Redirect"
},
{
"ns": 10,
"title": "Template:R from miscapitalisation"
},
{
"ns": 10,
"title": "Template:R from modification"
},
{
"ns": 10,
"title": "Template:R to disambiguation page"
},
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
}
],
"categories": [
{
"ns": 14,
"title": "Category:Redirects from ambiguous terms"
},
{
"ns": 14,
"title": "Category:Redirects from other capitalisations"
},
{
"ns": 14,
"title": "Category:Unprintworthy redirects"
}
]
},
{
"pageid": 14977970,
"ns": 0,
"title": "Ba'"
},
{
"pageid": 33351890,
"ns": 0,
"title": "Ba'Al Shem Tov"
}
]
}
}
Continuing queries
Queries will often have more results available than are just shown in the original query. (Often this is because a List query's result limit has been reached.) In these cases, queries can be continued. More detailed information on continuing queries can be at API:Continue.
Olası uyarılar
| Uyarı mesajı | Sebep |
|---|---|
| Özel sayfalar için destek uygulanmamıştır. | Özel: veya Medya: ad alanında bir başlık verilirse atılır. Bu ad alanlarındaki sayfalar sorgulanamaz. |
| Yönlendirme çözünürlüğü, revids parametresiyle birlikte kullanılamaz. revids noktasını yeniden çözülmemiş yönlendirmeler yapar. | redirect parametresi, revids kullanan sayfaları belirten bir sorguda kullanılırsa atılır.
|
Parametre geçmişi
- v1.34: Introduced
exportschema - v1.24:
rawcontinuetanıtıldı (not: ham devamı v1.26'ya kadar varsayılan davranıştır) - v1.21:
continuetanıtıldı
Ek notlar
- Başlıkları
titlesveyapageidsile belirtmek sorgu başına 50 başlık veyaapihighlimitshakkına sahip olanlar için 500 başlık ile sınırlıdır. - Tek bir istekte ihtiyacınız olanı elde etmek için birden çok sorgu modülünü birlikte kullanın, ör.
prop=info|revisions&list=backlinks|embeddedin|allimages&meta=userinfo. - Generators always pass page titles to the query module. Unlike lists (which may include additional data by default), generators should not output any information themselves, unless when explicitly requested via the generator module's query parameters.
Yönlendirmeleri çözme
Yönlendirmeler otomatik olarak çözülebilir, böylece belirli bir başlık yerine bir yönlendirme hedefi döndürülür.
Var olduğunda, her zaman from ve to öznitelikleri içerirler ve belirli bölümlere işaret eden yönlendirmeler için tofragment özniteliği içerebilirler.
Hem normalleştirme hem de yönlendirme gerçekleşebilir.
Birden çok yönlendirme durumunda, tüm yönlendirmeler çözülecek ve dairesel bir yönlendirme durumunda, 'sayfalar' bölümünde bir sayfa olmayabilir (bir örnek isteğe bakın).
Yönlendirme çözünürlüğü, revids= parametresiyle veya revers üreten bir jeneratörle birlikte kullanılamaz; bunu yapmak bir uyarı oluşturur ve belirtilen revids için yönlendirmeleri çözmez.
Aşağıdaki örnekler redirects parametresinin nasıl çalıştığını gösterir.
| Sonuç |
|---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Main page",
"to": "Main Page"
}
],
"pages": [
{
"pageid": 15580374,
"ns": 0,
"title": "Main Page"
}
]
}
}
|
| Sonuç |
|---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page"
}
]
}
}
|
| Sonuç |
|---|
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 217225,
"ns": 0,
"title": "Main page",
"contentmodel": "wikitext",
"pagelanguage": "en",
"pagelanguagehtmlcode": "en",
"pagelanguagedir": "ltr",
"touched": "2017-12-17T02:02:05Z",
"lastrevid": 777924062,
"length": 170,
"redirect": true
}
]
}
}
|
| Sonuç |
|---|
{
"batchcomplete": true,
"query": {
"redirects": [
{
"from": "Wikipedia:!--",
"to": "Wikipedia:Manual of Style",
"tofragment": "Invisible comments"
}
],
"pages": [
{
"pageid": 33697,
"ns": 4,
"title": "Wikipedia:Manual of Style"
}
]
}
}
|
| Sonuç |
|---|
{
"batchcomplete": true,
"query": {
"normalized": [
{
"fromencoded": false,
"from": "page1",
"to": "Page1"
}
],
"redirects": [
{
"from": "Page1",
"to": "Page2"
},
{
"from": "Page2",
"to": "Page3"
},
{
"from": "Page3",
"to": "Page1"
}
],
"pages": [
{
"ns": 0,
"title": "Page1",
"missing": true
}
]
}
}
|
Ayrıca bakınız
- API:Main page - Hızlı başlangıç kılavuzu.
- API:Raw query continue -
rawcontinueparametresinin nasıl kullanılacağı hakkında bilgi içerir.
- MediaWiki Interfaces Team tarafından korunur.
- Canlı sohbet (IRC): #mediawiki-core bağlan
- Sorun izleyicisi: Phabricator MediaWiki-Action-API (Sorun bildir)