MediaWiki API 說明
此頁為自動產生的 MediaWiki API 說明文件頁面。
說明文件與範例:https://www.mediawiki.org/wiki/API
主要模組
- 来源:MediaWiki
- 许可协议:GPL-2.0+
狀態資訊:本頁所展示的所有功能都應正常工作,但是 API 仍在開發當中,將會隨時變化。請訂閱mediawiki-api-announce 郵件清單以便得到更新通知。
錯誤請求:當 API 收到錯誤請求時, HTTP header 將會返回一個包含「MediaWiki-API-Error」的值,隨後 header 的值與錯誤碼將會送回並設定為相同的值。詳細資訊請參閱API: 錯誤與警告。
- action
要執行的動作。
- 單值:ask,askargs,block,browsebyproperty,browsebysubject,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,pfautocomplete,pfautoedit,protect,purge,query,removeauthenticationdata,resetpassword,revisiondelete,rollback,rsd,setnotificationtimestamp,smwinfo,stashedit,tag,tokens,unblock,undelete,unlinkaccount,upload,userrights,watch
- 預設值:help
- format
輸出的格式。
- 單值:json,jsonfm,none,php,phpfm,rawfm,xml,xmlfm
- 預設值:jsonfm
- maxlag
最大延迟可被用于MediaWiki安装于数据库复制集中。要保存导致更多网站复制延迟的操作,此参数可使客户端等待直到复制延迟少于指定值时。万一发生过多延迟,错误代码maxlag会返回消息,例如等待$host中:延迟$lag秒。
参见Manual: Maxlag parameter以获取更多信息。- 类型:整数
- smaxage
设置
s-maxage
HTTP缓存控制头至这些秒。错误不会缓存。- 类型:整数
- 預設值:0
- maxage
设置
max-age
HTTP缓存控制头至这些秒。错误不会缓存。- 类型:整数
- 預設值:0
- assert
如果设置为user就验证用户是否登录,或如果设置为bot就验证是否有机器人用户权限。
- 單值:user,bot
- assertuser
验证当前用户是命名用户。
- 类型:用户名
- requestid
任何在此提供的值将包含在响应中。可能可以用以区别请求。
- servedby
包含保存结果请求的主机名。
- 类型:布尔值(详细信息)
- curtimestamp
在结果中包括当前时间戳。
- 类型:布尔值(详细信息)
- origin
当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。
对于已验证的请求,这必须正确匹配
Origin
标头中的原点之一,因此它已经设置为像https://zh.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
- 主模組使用說明
- api.php?action=help [在沙盒中打开]
- 一個頁面中的所有說明。
- api.php?action=help&recursivesubmodules=1 [在沙盒中打开]
数据类型
至MediaWiki的输入应为NFC标准化的UTF-8。MediaWiki可以尝试转换其他输入,但这可能导致一些操作失败(例如edits与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/。