MediaWiki API 說明

此頁為自動產生的 MediaWiki API 說明文件頁面。

說明文件與範例:https://www.mediawiki.org/wiki/API

主要模組

  • 来源:MediaWiki
  • 许可协议:GPL-2.0+

狀態資訊:本頁所展示的所有功能都應正常工作,但是API仍在開發當中,將會隨時變化。請訂閱mediawiki-api-announce 郵件清單以便得到更新通知。

錯誤的請求:當API收到錯誤的請求時,會發出以「MediaWiki-API-Error」為鍵的HTTP頭欄位,隨後頭欄位的值與錯誤碼將會被設為相同的值。詳細資訊請參閱API: 錯誤與警告

測試:要簡化API請求的測試過程,請見Special:ApiSandbox

參數:
action

要執行的動作。

單值:blockchangeauthenticationdatachecktokenclearhasmsgclientlogincomparecreateaccountcspreportdeleteeditemailuserembedvideoexpandtemplatesfeedcontributionsfeedrecentchangesfeedwatchlistfilereverthelpimagerotateimportlinkaccountloginlogoutmanagetagsmergehistorymoveopensearchoptionsparaminfoparsepatrolprotectpurgequeryremoveauthenticationdataresetpasswordrevisiondeleterollbackrsdsetnotificationtimestampsetpagelanguagestashedittagtokensunblockundeleteunlinkaccountuploaduserrightsvalidatepasswordwatch
預設值:help
format

輸出的格式。

單值:jsonjsonfmnonephpphpfmrawfmxmlxmlfm
預設值:jsonfm
maxlag

最大延迟可被用于MediaWiki安装于数据库复制集中。要保存导致更多网站复制延迟的操作,此参数可使客户端等待直到复制延迟少于指定值时。万一发生过多延迟,错误代码maxlag会返回消息,例如等待$host中:延迟$lag秒
参见Manual: Maxlag parameter以获取更多信息。

类型:整数
smaxage

將HTTP緩存控制頭欄位設為s-maxage秒。錯誤不會做緩存。

类型:整数
預設值:0
maxage

將HTTP緩存控制頭欄位設為max-age秒。錯誤不會做緩存。

类型:整数
預設值:0
assert

若設為user,會確認使用者是否已登入;若設為bot,會確認是否擁有機械人權限。

單值:userbot
assertuser

確認目前使用者就是指定的使用者。

类型:用户名
requestid

在此處提供的任何值都將包括在響應之中。可用於區分請求。

servedby

在結果中包括提出請求的主機名。

类型:布尔值(详细信息
curtimestamp

在結果中包括目前的時間戳。

类型:布尔值(详细信息
responselanginfo

在結果中包括uselangerrorlang所用的語言。

类型:布尔值(详细信息
origin

当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。

对于已验证的请求,这必须正确匹配Origin标头中的原点之一,因此它已经设置为像https://zh.wikipedia.orghttps://meta.wikimedia.org的东西。如果此参数不匹配Origin页顶,就返回403错误响应。如果此参数匹配Origin页顶并且起点被白名单,将设置Access-Control-Allow-OriginAccess-Control-Allow-Credentials开头。

对于未验证的请求,会指定值*。这将导致Access-Control-Allow-Origin标头被设置,但Access-Control-Allow-Credentials将为false,且所有用户特定数据将受限制。

uselang

用于消息翻译的语言。action=query&meta=siteinfosiprop=languages可返回语言代码列表,或指定user以使用当前用户的语言设置,或指定content以使用此wiki的内容语言。

預設值:user
errorformat

用于警告和错误文本输出的格式。

plaintext
已移除HTML标签,并被替换实体的Wiki文本。
wikitext
未解析的wiki文本。
html
HTML。
raw
消息关键词和参数。
none
无文本输出,仅包含错误代码。
bc
在MediaWiki 1.29以前版本使用的格式。errorlangerrorsuselocal会被忽略。
單值:plaintextwikitexthtmlrawnonebc
預設值:bc
errorlang

用于警告和错误的语言。action=query&meta=siteinfosiprop=languages返回语言代码的列表,或指定content以使用此wiki的内容语言,或指定uselang以使用与uselang参数相同的值。

預設值:uselang
errorsuselocal

如果指定,错误文本将使用来自MediaWiki名字空间的本地自定义消息。

类型:布尔值(详细信息
權限:
writeapi
使用寫入 API
已授權給: all,user 和 bot
apihighlimits
在API查询中使用更高的上限(慢查询:500;快查询:5000)。慢查询的限制也适用于多值参数。
已授權給: bot 和 sysop

数据类型

至MediaWiki的输入应为NFC标准化的UTF-8。MediaWiki可以尝试转换其他输入,但这可能导致一些操作失败(例如带MD5校验编辑)。

一些在API请求中的参数类型需要更进一步解释:

boolean
布尔参数就像HTML复选框一样工作:如果指定参数,无论何值都被认为是真。如果要假值,则可完全忽略参数。
timestamp
时间戳可被指定为很多格式。推荐使用ISO 8601日期和时间标准。所有时间为UTC时间,包含的任何时区会被忽略。
  • ISO 8601日期和时间,2001-01-15T14:56:00Z(标点和Z是可选项)
  • 带小数秒(会被忽略)的ISO 8601日期和时间,2001-01-15T14:56:00.00001Z(破折号、冒号和Z是可选的)
  • MediaWiki格式,20010115145600
  • 一般数字格式,2001-01-15 14:56:00GMT+##-##的可选时区会被忽略)
  • EXIF格式,2001:01:15 14:56:00
  • RFC 2822格式(时区可省略),Mon, 15 Jan 2001 14:56:00
  • RFC 850格式(时区可省略),Monday, 15-Jan-2001 14:56:00
  • C ctime格式,Mon Jan 15 14:56:00 2001
  • 从1970-01-01T00:00:00Z开始的秒数,作为1到13位数的整数(除了0
  • 字符串now
替代多值分隔符
使用多个值的参数通常会与管道符号分隔的值一起提交,例如param=value1|value2param=value1%7Cvalue2。如果值必须包含管道符号,使用U+001F(单位分隔符)作为分隔符,在值前加前缀U+001F,例如param=%1Fvalue1%1Fvalue2

製作群

API 開發人員:

  • Roan Kattouw (首席開發者 Sep 2007–2009)
  • Victor Vasiliev
  • Bryan Tong Minh
  • Sam Reed
  • Yuri Astrakhan (創立者,首席開發者 Sep 2006–Sep 2007)
  • Brad Jorsch (首席開發者 2013–present)

請傳送您的評論、建議以及問題至 mediawiki-api@lists.wikimedia.org 或者回報問題至 https://phabricator.wikimedia.org/。