Mediawiki API:为什么此查询返回数组而不是页面地图?

时间:2017-12-15 22:33:33

标签: json http mediawiki mediawiki-api

我正在向我的MediaWiki API wiki发送请求。我正在使用此查询字符串进行GET:

action=query&format=json&prop=images|info&inprop=url&titles=<titles>

当我使用普通页面时,如"Serval",响应看起来像这样:

{
   "batchcomplete":"",
   "query":{
      "pages":{
         "34":{
             // page info
         }
      }
   }
}

这是我的程序所期望的,据我所知,它是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元素会导致它切换回地图,就像我一样期望的。

是什么原因引起的?我的解决方法(在一个已知的好页面之前)是唯一的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你可以使用formatversion=2来获得这样的结构(也改变其他一些东西);无论如何,这是一个很好的做法。