私はMediaWiki APIを使用してwikiにリクエストしています。 I GETのために、このクエリ文字列を使用しています:Mediawiki API:なぜこのクエリはページのマップではなく配列を返しますか?
{
"batchcomplete":"",
"query":{
"pages":{
"34":{
// page info
}
}
}
}
これは私のプログラムが期待するものである、と私は"Serval"のような通常のページを使用する場合、応答は次のようになります
action=query&format=json&prop=images|info&inprop=url&titles=<titles>
私はそれがAPIが約束しているものだと私が言うことができる限り。
しかし、私はタイトルのために奇妙なページの種類を使用し、"|Main Page"のように、私はこのようになります応答を得る:
{
"batchcomplete":"",
"query":{
"pages":[
{
"title":"",
"invalidreason":"The requested page title is empty or contains only the name of a namespace.",
"invalid":""
},
{
"pageid":1,
// info
}
]
}
}
私は期待しinvalid
ページを、しかし、私が期待していないことですpages
要素がマップではなく配列であり、ページに新しいpageid
要素があることを確認してください。私はこのスイッチを引き起こすページの網羅的なリストを持っていませんが、クエリ内のtitles
要素に通常のページを追加(またはプリペア)すると、期待通りにマップに戻ることができると言えます。
この原因は何ですか?私の回避策は(唯一の良いページの前に)唯一の方法ですか?
ありがとうございました。
「地図のような構造」とは、地図や配列のことですか? – YourGamerMom
'formatversion = 2'は配列内のページを返します(また、' '' 'の代わりに' 'true''を使用します)。 – Tgr