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
 要執行的動作。
- block
 - 封鎖使用者。
 - changeauthenticationdata
 - 為目前使用者變更身分核對資料。
 - checktoken
 - 檢查來自 action=query&meta=tokens 的密鑰有效性。
 - clearhasmsg
 - 清除目前使用者的 
hasmsg標記。 - clientlogin
 - 使用交互式流登录wiki。
 - compare
 - 比較 2 個頁面間的差異。
 - createaccount
 - 建立新使用者帳號。
 - cspreport
 - 由浏览器使用以报告违反内容安全方针的内容。此模块应永不使用,除了在被CSP兼容的浏览器自动使用时。
 - delete
 - 刪除頁面。
 - edit
 - 建立與編輯頁面。
 - emailuser
 - 寄送電子郵件給使用者。
 - expandtemplates
 - 展開所有於 wikitext 中模板。
 - feedcontributions
 - 回傳使用者貢獻 Feed。
 - feedrecentchanges
 - 返回最近變更摘要。
 - feedwatchlist
 - 返回監視清單 feed。
 - filerevert
 - 回退一个文件至某一旧版本。
 - help
 - 显示指定模块的帮助。
 - imagerotate
 - 旋轉一張或多張圖片。
 - import
 - 从其他wiki,或从XML文件导入页面。
 - linkaccount
 - 将来自第三方提供商的账户链接至当前用户。
 - login
 - 登入並取得身分核對 cookies
 - logout
 - 登出並清除 session 資料。
 - managetags
 - 执行有关更改标签的管理任务。
 - mergehistory
 - 合併頁面歷史
 - move
 - 移動頁面。
 - opensearch
 - 使用 OpenSearch 協定搜尋本 wiki。
 - options
 - 更改当前用户的参数设置。
 - paraminfo
 - 获得关于API模块的信息。
 - parse
 - 解析内容并返回解析器输出。
 - patrol
 - 巡查頁面或修訂。
 - protect
 - 變更頁面的保護層級。
 - purge
 - 为指定标题刷新缓存。
 - query
 - 擷取來自及有關MediaWiki的數據。
 - removeauthenticationdata
 - 為目前使用者移除身分核對資料。
 - resetpassword
 - 向用户发送密码重置邮件。
 - revisiondelete
 - 刪除和取消刪除修訂。
 - rollback
 - 撤销对页面的最近编辑。
 - rsd
 - 导出一个RSD(Really Simple Discovery)架构。
 - setnotificationtimestamp
 - 更新监视页面的通知时间戳。
 - setpagelanguage
 - 更改页面的语言。
 - stashedit
 - 在分享缓存中准备编辑。
 - tag
 - 从个别修订或日志记录中添加或移除更改标签。
 - unblock
 - 解除封鎖一位使用者。
 - undelete
 - 恢复删除页面的修订版本。
 - unlinkaccount
 - 从当前用户移除已连接的第三方账户。
 - upload
 - 上传文件,或获取正在等待中的上传的状态。
 - userrights
 - 更改一位使用者的群組成員。
 - validatepassword
 - 验证密码是否符合wiki的密码方针。
 - watch
 - 从当前用户的监视列表中添加或移除页面。
 - tokens
 - 已停用。 取得資料修改動作的密鑰。
 
- 單值:block、changeauthenticationdata、checktoken、clearhasmsg、clientlogin、compare、createaccount、cspreport、delete、edit、emailuser、expandtemplates、feedcontributions、feedrecentchanges、feedwatchlist、filerevert、help、imagerotate、import、linkaccount、login、logout、managetags、mergehistory、move、opensearch、options、paraminfo、parse、patrol、protect、purge、query、removeauthenticationdata、resetpassword、revisiondelete、rollback、rsd、setnotificationtimestamp、setpagelanguage、stashedit、tag、unblock、undelete、unlinkaccount、upload、userrights、validatepassword、watch、tokens
 - 預設值:help
 - format
 輸出的格式。
- 單值:json、jsonfm、none、php、phpfm、rawfm、xml、xmlfm
 - 預設值:jsonfm
 - maxlag
 最大延迟可被用于MediaWiki安装于数据库复制集中。要保存导致更多网站复制延迟的操作,此参数可使客户端等待直到复制延迟少于指定值时。万一发生过多延迟,错误代码maxlag会返回消息,例如等待$host中:延迟$lag秒。
参见手册:Maxlag参数以获取更多信息。- 类型:整数
 - smaxage
 將HTTP緩存控制頭欄位設為
s-maxage秒。錯誤不會做緩存。- 类型:整数
 - 預設值:0
 - maxage
 將HTTP緩存控制頭欄位設為
max-age秒。錯誤不會做緩存。- 类型:整数
 - 預設值:0
 - assert
 若設為user,會確認使用者是否已登入;若設為bot,會確認是否擁有機械人權限。
- 單值:user、bot
 - assertuser
 確認目前使用者就是指定的使用者。
- 类型:用户名
 - requestid
 在此處提供的任何值都將包括在響應之中。可用於區分請求。
- servedby
 在結果中包括提出請求的主機名。
- 类型:布尔值(详细信息)
 - curtimestamp
 在結果中包括目前的時間戳。
- 类型:布尔值(详细信息)
 - responselanginfo
 在結果中包括uselang和errorlang所用的語言。
- 类型:布尔值(详细信息)
 - origin
 当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。
对于已验证的请求,这必须正确匹配
Origin标头中的原点之一,因此它已经设置为像https://en.wikipedia.org或https://meta.wikimedia.org的东西。如果此参数不匹配Origin页顶,就返回403错误响应。如果此参数匹配Origin页顶并且起点被白名单,将设置Access-Control-Allow-Origin和Access-Control-Allow-Credentials开头。对于未验证的请求,会指定值*。这将导致
Access-Control-Allow-Origin标头被设置,但Access-Control-Allow-Credentials将为false,且所有用户特定数据将受限制。- uselang
 用于消息翻译的语言。action=query&meta=siteinfo与siprop=languages可返回语言代码列表,或指定user以使用当前用户的语言设置,或指定content以使用此wiki的内容语言。
- 預設值:user
 - errorformat
 用于警告和错误文本输出的格式。
- plaintext
 - 已移除HTML标签,并被替换实体的Wiki文本。
 - wikitext
 - 未解析的wiki文本。
 - html
 - HTML。
 - raw
 - 消息关键词和参数。
 - none
 - 无文本输出,仅包含错误代码。
 - bc
 - 在MediaWiki 1.29以前版本使用的格式。errorlang和errorsuselocal会被忽略。
 
- 單值:plaintext、wikitext、html、raw、none、bc
 - 預設值:bc
 - errorlang
 用于警告和错误的语言。action=query&meta=siteinfo带siprop=languages返回语言代码的列表,或指定content以使用此wiki的内容语言,或指定uselang以使用与uselang参数相同的值。
- 預設值:uselang
 - errorsuselocal
 如果指定,错误文本将使用来自MediaWiki名字空间的本地自定义消息。
- 类型:布尔值(详细信息)
 
- 主模組使用說明
 - api.php?action=help [在沙盒中打开]
 - 一個頁面中的所有說明。
 - api.php?action=help&recursivesubmodules=1 [在沙盒中打开]
 
数据类型
至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:00(GMT、+##或-##的可选时区会被忽略)
 - 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|value2或param=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/。