Mediawiki API:为什么这个查询 return 是一个数组而不是页面映射?
Mediawiki API: Why does this query return an array rather than a map of pages?
我正在向 wiki 支持我的 MediaWiki API 提出请求。我将此查询字符串用于 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
元素是一个数组而不是一个map,而且页面有一个新的pageid
元素。我没有触发此切换的详尽页面列表,但我可以说将常规页面附加(或前置)到查询中的 titles
元素会导致它切换回地图,就像我一样期待。
这是什么原因造成的?我的解决方法(在已知的良好页面前添加)是唯一的方法吗?
谢谢。
您可以使用 formatversion=2
来始终获得这样的结构(也可以更改其他一些内容);无论如何,这是一个很好的做法。
我正在向 wiki 支持我的 MediaWiki API 提出请求。我将此查询字符串用于 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
元素是一个数组而不是一个map,而且页面有一个新的pageid
元素。我没有触发此切换的详尽页面列表,但我可以说将常规页面附加(或前置)到查询中的 titles
元素会导致它切换回地图,就像我一样期待。
这是什么原因造成的?我的解决方法(在已知的良好页面前添加)是唯一的方法吗?
谢谢。
您可以使用 formatversion=2
来始终获得这样的结构(也可以更改其他一些内容);无论如何,这是一个很好的做法。