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:
titles
parametresini kullanarak ada göre, ör.titles=Foo|Bar|Main_Page
.pageids
parametresini kullanarak sayfa kimliğine göre, ör.pageids=123|456|75915
.revids
parametresini 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:
rawcontinue
tanıtıldı (not ham devamı v1.26'ya kadar varsayılan davranıştır) - v1.21:
continue
tanıtıldı
Ek notlar
- Başlıkları
titles
veyapageids
ile belirtmek sorgu başına 50 başlık veyaapihighlimits
hakkı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 (ayrıca aşağıda 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:Anasayfa - Hızlı başlangıç kılavuzu.
- API:Raw query continue -
rawcontinue
parametresinin 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)