MediaWiki API 帮助
这是一个自动生成的 MediaWiki API 文档页面。
文档和示例: https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page
主模块
- 来源: MediaWiki
- 许可:
状态: MediaWiki API 是一个成熟且稳定的接口,得到了积极的支持和改进。虽然我们尽量避免,但有时可能需要进行不兼容的更改;请订阅 mediawiki-api-announce 邮件列表 以获取更新通知。
错误请求: 当向 API 发送错误请求时,将发送一个键为“MediaWiki-API-Error”的 HTTP 标头,然后该标头的值和返回的错误代码将设置为相同的值。更多信息请参见 API:错误和警告。
测试: 为了方便测试 API 请求,请参见 。
- action
要执行的操作。
- abusefiltercheckmatch
- 检查滥用过滤器是否与一组变量、一次编辑或一次已记录的滥用过滤器事件匹配。
- abusefilterchecksyntax
- 检查滥用过滤器语法的正确性。
- abusefilterevalexpression
- 评估滥用过滤器表达式。
- abusefilterunblockautopromote
- 解除用户因滥用过滤器后果而获得的自动晋升的封禁。
- abuselogprivatedetails
- 查看滥用日志条目的私有详细信息。
- acquiretempusername
- 如果启用了临时帐户创建且当前用户已注销,则获取一个临时用户名并将其存储在当前会话中。如果已存储名称,则返回相同名称。
- antispoof
- 根据 AntiSpoof 的规范化检查检查用户名。
- block
- 封禁用户。
- centralauthtoken
- 获取一个 centralauthtoken 以向关联的 wiki 发出经过身份验证的请求。
- centralnoticecdncacheupdatebanner
- 请求为匿名用户清除 CDN(前端)缓存中存储的请求横幅和语言的内容。
- centralnoticechoicedata
- 获取选择给定项目和语言横幅所需的数据。
- centralnoticequerycampaign
- 获取一个活动的所有配置设置。
- changeauthenticationdata
- 更改当前用户的身份验证数据。
- changecontentmodel
- 更改页面的内容模型。
- checktoken
- 检查来自 action=query&meta=tokens 的 token 的有效性。
- clearhasmsg
- 清除当前用户的
hasmsg标志。 - clientlogin
- 使用交互式流程登录 wiki。
- communityconfigurationedit
- 更改社区配置中配置提供程序的内容。
- compare
- 获取两个页面之间的差异。
- createaccount
- 创建新用户帐户。
- createlocalaccount
- 强制创建本地帐户。中心帐户必须存在。
- delete
- 删除页面。
- deleteglobalaccount
- 删除全局用户。
- discussiontoolsedit
- 在讨论页面上发布消息。
- discussiontoolsfindcomment
- 按 ID 或名称查找评论。
- discussiontoolsgetsubscriptions
- 获取给定主题的订阅状态。
- discussiontoolssubscribe
- 订阅(或取消订阅)以接收主题通知。
- discussiontoolsthank
- 发送对评论的公开感谢通知。
- echocreateevent
- 手动触发用户通知。
- echomarkread
- 将当前用户的通知标记为已读。
- echomarkseen
- 将当前用户的通知标记为已查看。
- echomute
- 静音或取消静音特定用户或页面的通知。
- edit
- 创建和编辑页面。
- editmassmessagelist
- 编辑群发消息传送列表。
- emailuser
- 向用户发送电子邮件。
- expandtemplates
- 展开维基文本中的所有模板。
- featuredfeed
- 返回精选内容 Feed。
- feedcontributions
- 返回用户贡献 Feed。
- feedrecentchanges
- 返回最近更改 Feed。
- feedwatchlist
- 返回监视列表 Feed。
- filerevert
- 将文件还原到旧版本。
- globalblock
- 全局封禁或解禁用户。
- globalpreferenceoverrides
- 更改当前用户的全局首选项的本地覆盖。
- globalpreferences
- 更改当前用户的全局首选项。
- globaluserrights
- 将用户添加到/从中移除全局组。
- help
- 显示指定模块的帮助。
- imagerotate
- 此模块已被禁用。
- import
- 从另一个 wiki 或 XML 文件导入页面。
- jsonconfig
- 允许直接访问 JsonConfig 子系统。
- languagesearch
- 以任何脚本搜索语言名称。
- linkaccount
- 将第三方提供商的帐户链接到当前用户。
- login
- 登录并获取身份验证 cookie。
- logout
- 注销并清除会话数据。
- managetags
- 执行与更改标签相关的管理任务。
- massmessage
- 向页面列表发送消息。
- mergehistory
- 合并页面历史记录。
- move
- 移动页面。
- opensearch
- 使用 OpenSearch 协议搜索 wiki。
- options
- 更改当前用户的首选项。
- paraminfo
- 获取有关 API 模块的信息。
- parse
- 解析内容并返回解析器输出。
- patrol
- 巡查页面或修订版。
- protect
- 更改页面的保护级别。
- purge
- 清除给定标题的缓存。
- query
- 从 MediaWiki 和关于 MediaWiki 中获取数据。
- removeauthenticationdata
- 移除当前用户的身份验证数据。
- resetpassword
- 向用户发送密码重置电子邮件。
- revisiondelete
- 删除和恢复修订版。
- rollback
- 撤销对页面的最后一次编辑。
- rsd
- 导出 RSD(Really Simple Discovery)模式。
- setglobalaccountstatus
- 隐藏或锁定(或显示或解锁)全局用户帐户。
- setnotificationtimestamp
- 更新监视页面的通知时间戳。
- setpagelanguage
- 更改页面的语言。
- shortenurl
- 将长 URL 缩短为更短的 URL。
- sitematrix
- 获取 Wikimedia 站点列表。
- spamblacklist
- 根据垃圾链接列表验证一个或多个 URL。
- streamconfigs
- 公开事件流配置。仅返回 format=json 和 formatversion=2。
- strikevote
- 允许管理员划掉或取消划掉投票。
- tag
- 向单个修订版或日志条目添加或删除更改标签。
- templatedata
- 获取 TemplateData 扩展存储的数据。
- thank
- 向编辑者发送感谢通知。
- titleblacklist
- 根据 TitleBlacklist 验证页面标题、文件名或用户名。
- torblock
- 检查 IP 地址是否被封禁为 Tor 出口节点。
- transcodereset
- 拥有“transcode-reset”权限的用户可以重置并重新运行转码作业。
- unblock
- 解封用户。
- undelete
- 恢复已删除页面的修订版。
- unlinkaccount
- 从当前用户处移除链接的第三方帐户。
- upload
- 上传文件,或获取待处理上传的状态。
- userrights
- 更改用户的组别成员身份。
- validatepassword
- 根据 wiki 的密码策略验证密码。
- watch
- 将页面添加到/从中移除当前用户的监视列表。
- webapp-manifest
- 返回 webapp manifest。
- webauthn
- 用于在注册/身份验证过程中服务器和客户端之间通信的 API 模块。
- wikilove
- 给予其他用户 WikiLove。
- bouncehandler
- 内部。 接收弹回的电子邮件并进行处理以处理失败的收件人。
- categorytree
- 内部。 CategoryTree 扩展的内部模块。
- chartinfo
- 内部。 检索 Chart 页面使用次数的当前计数。同一图表在同一页面上的多次使用被视为一次使用。
- cirrus-check-sanity
- 内部。 报告搜索索引中页面 ID 范围的正确性。
- cirrus-config-dump
- 内部。 CirrusSearch 配置的转储。
- cirrus-mapping-dump
- 内部。 此 wiki 的 CirrusSearch 映射的转储。
- cirrus-profiles-dump
- 内部。 此 wiki 的 CirrusSearch 配置文件的转储。
- cirrus-settings-dump
- 内部。 此 wiki 的 CirrusSearch 设置的转储。
- collection
- 内部。 用于对 wiki 用户集合执行各种操作的 API 模块。
- cspreport
- 内部。 浏览器用于报告内容安全策略的违规行为。此模块不应被使用,除非被符合 CSP 的网络浏览器自动使用。
- discussiontoolscompare
- 内部。 获取两个页面修订版之间评论更改的信息。
- discussiontoolspageinfo
- 内部。 返回初始化讨论工具所需的元数据。
- discussiontoolspreview
- 内部。 预览讨论页面上的消息。
- editcheckreferenceurl
- 内部。 检查 URL 作为引用的状态。
- fancycaptchareload
- 内部。 获取新的 FancyCaptcha。
- jsondata
- 内部。 检索本地化的 JSON 数据。
- jsontransform
- 内部。 检索由 Lua 函数转换的 JSON 数据。
- oathvalidate
- 内部。 验证双因素身份验证 (OATH) 令牌。
- parser-migration
- 内部。 使用两种不同的解析器配置解析页面。
- readinglists
- 内部。 阅读列表写操作。
- sanitize-mapdata
- 内部。 对 Kartographer 扩展执行数据验证。
- scribunto-console
- 内部。 用于服务 Scribunto 控制台 XHR 请求的内部模块。
- securepollauth
- 内部。 允许远程 wiki 在授予投票权之前验证用户。
- stashedit
- 内部。 在共享缓存中准备编辑。
- timedtext
- 内部。 为 <track> 元素的使用提供计时文本内容。
- ulslocalization
- 内部。 获取 ULS 在给定语言的本地化。
- ulssetlang
- 内部。 更新用户的首选界面语言。
- visualeditor
- 内部。 从 Parsoid 服务返回页面的 HTML5。
- visualeditoredit
- 内部。 将 HTML5 页面保存到 MediaWiki(通过 Parsoid 服务转换为 wikitext)。
- wikimediaeventsblockededit
- 内部。 记录有关被阻止的编辑尝试的信息。
- 以下值之一: abusefiltercheckmatch、abusefilterchecksyntax、abusefilterevalexpression、abusefilterunblockautopromote、abuselogprivatedetails、acquiretempusername、antispoof、block、centralauthtoken、centralnoticecdncacheupdatebanner、centralnoticechoicedata、centralnoticequerycampaign、changeauthenticationdata、changecontentmodel、checktoken、clearhasmsg、clientlogin、communityconfigurationedit、compare、createaccount、createlocalaccount、delete、deleteglobalaccount、discussiontoolsedit、discussiontoolsfindcomment、discussiontoolsgetsubscriptions、discussiontoolssubscribe、discussiontoolsthank、echocreateevent、echomarkread、echomarkseen、echomute、edit、editmassmessagelist、emailuser、expandtemplates、featuredfeed、feedcontributions、feedrecentchanges、feedwatchlist、filerevert、globalblock、globalpreferenceoverrides、globalpreferences、globaluserrights、help、imagerotate、import、jsonconfig、languagesearch、linkaccount、login、logout、managetags、massmessage、mergehistory、move、opensearch、options、paraminfo、parse、patrol、protect、purge、query、removeauthenticationdata、resetpassword、revisiondelete、rollback、rsd、setglobalaccountstatus、setnotificationtimestamp、setpagelanguage、shortenurl、sitematrix、spamblacklist、streamconfigs、strikevote、tag、templatedata、thank、titleblacklist、torblock、transcodereset、unblock、undelete、unlinkaccount、upload、userrights、validatepassword、watch、webapp-manifest、webauthn、wikilove、bouncehandler、categorytree、chartinfo、cirrus-check-sanity、cirrus-config-dump、cirrus-mapping-dump、cirrus-profiles-dump、cirrus-settings-dump、collection、cspreport、discussiontoolscompare、discussiontoolspageinfo、discussiontoolspreview、editcheckreferenceurl、fancycaptchareload、jsondata、jsontransform、oathvalidate、parser-migration、readinglists、sanitize-mapdata、scribunto-console、securepollauth、stashedit、timedtext、ulslocalization、ulssetlang、visualeditor、visualeditoredit、wikimediaeventsblockededit
- 默认值:help
- format
输出的格式。
- 以下值之一: json, jsonfm, none, php, phpfm, rawfm, xml, xmlfm
- 默认值:jsonfm
- maxlag
当 MediaWiki 安装在数据库复制集群上时,最多可以使用复制延迟。为避免执行引起更多站点复制延迟的操作,此参数可以让客户端等待,直到复制延迟低于指定值。如果复制延迟过高,将返回错误代码 maxlag,并附带消息,例如 Waiting for $host: $lag seconds lagged。
有关更多信息,请参阅 Manual: Maxlag parameter。- 类型:integer
- smaxage
将
s-maxageHTTP 缓存控制标头设置为此秒数。错误永远不会被缓存。- 类型:integer
- 该值不得小于 0。
- 默认值:0
- maxage
将
max-ageHTTP 缓存控制标头设置为此秒数。错误永远不会被缓存。- 类型:integer
- 该值不得小于 0。
- 默认值:0
- assert
如果设置为 user,则验证用户是否已登录(包括可能作为临时用户);如果设置为 anon,则验证用户未登录;如果设置为 bot,则验证用户是否具有机器人用户权限。
- 以下值之一: anon, bot, user
- assertuser
验证当前用户是否为指定用户。
- 类型:user,可通过用户名和临时用户识别
- requestid
此处提供的任何值都将包含在响应中。可用于区分请求。
- servedby
在结果中包含提供服务的宿主名称。
- 类型:boolean (详情)
- curtimestamp
在结果中包含当前时间戳。
- 类型:boolean (详情)
- responselanginfo
在结果中包含用于 uselang 和 errorlang 的语言。
- 类型:boolean (详情)
- origin
当使用跨域 AJAX 请求(CORS)访问 API 时,请将此设置为源域。它必须包含在任何预检请求中,因此必须是请求 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,并且所有用户特定数据都将受到限制。- crossorigin
当使用跨域 AJAX 请求(CORS)访问 API 并使用防跨站请求伪造(CSRF)攻击的会话提供程序(如 OAuth)时,请使用此参数代替
origin=*来使请求经过身份验证(即,不会被注销)。它必须包含在任何预检请求中,因此必须是请求 URI 的一部分(而不是 POST 主体)。请注意,大多数会话提供程序,包括标准的基于 cookie 的会话,都不支持经过身份验证的 CORS,并且不能与此参数一起使用。
- 类型:boolean (详情)
- uselang
用于消息翻译的语言。 action=query&meta=siteinfo&siprop=languages 会返回语言代码列表。您可指定 user 来使用当前用户的语言偏好,或指定 content 来使用此维基的内容语言。
- 默认值:user
- variant
语言的变体。仅在基础语言支持变体转换时才有效。
- errorformat
用于警告和错误文本输出的格式。
- plaintext
- 维基文本,已移除 HTML 标签并替换了实体。
- wikitext
- 未解析的维基文本。
- html
- HTML。
- raw
- 消息键和参数。
- none
- 不输出文本,只输出错误代码。
- bc
- MediaWiki 1.29 之前的格式。errorlang 和 errorsuselocal 被忽略。
- 以下值之一: bc, html, none, plaintext, raw, wikitext
- 默认值:bc
- errorlang
用于警告和错误的语言。 action=query&meta=siteinfo&siprop=languages 会返回语言代码列表。指定 content 来使用此维基的内容语言,或指定 uselang 来使用与 uselang 参数相同的值。
- 默认值:uselang
- errorsuselocal
如果给定,错误文本将使用 MediaWiki 命名空间中的本地自定义消息。
- 类型:boolean (详情)
- centralauthtoken
当使用跨域 AJAX 请求 (CORS) 访问 API 时,使用此参数作为当前 SUL 用户进行身份验证。在此维基上使用 action=centralauthtoken 来检索令牌,然后再发出 CORS 请求。每个令牌只能使用一次,并在 10 秒后过期。这应包含在任何预检请求中,因此应包含在请求 URI 中(而不是 POST 主体中)。
- 主模块的帮助。
- api.php?action=help
- 所有帮助集中在一页。
- api.php?action=help&recursivesubmodules=1
数据类型
MediaWiki 的输入应为 NFC 规范化的 UTF-8。MediaWiki 可能会尝试转换其他输入,但这可能会导致某些操作(如带有 MD5 校验的 编辑)失败。
通常使用管道符(例如 param=value1|value2 或 param=value1%7Cvalue2)分隔多个值的参数。如果值必须包含管道符,则使用 U+001F(单元分隔符)作为分隔符,并且在值前加上 U+001F,例如 param=%1Fvalue1%1Fvalue2。
API 请求中的某些参数类型需要进一步说明
- boolean
布尔参数的工作方式类似于 HTML 复选框:如果指定了参数,无论其值如何,都将其视为 true。对于 false 值,请完全省略该参数。
- expiry
到期值可以是相对的(例如 5 months 或 2 weeks)或绝对的(例如 2014-09-18T12:34:56Z)。要设置无到期时间,请使用 infinite、indefinite、infinity 或 never。
- timestamp
时间戳可以按多种格式指定,有关详细信息,请参阅mediawiki.org 上文档化的 Timestamp 库输入格式。建议使用 ISO 8601 日期和时间:2001-01-15T14:56:00Z。此外,字符串 now 可用于指定当前时间戳。
模板化参数
模板化参数支持 API 模块需要为某些其他参数的每个值提供值的情况。例如,如果有一个请求水果的 API 模块,它可能有参数 fruits 来指定请求哪些水果,以及一个模板化参数 {fruit}-quantity 来指定每种水果请求的数量。然后,一个想要 1 个苹果、5 个香蕉和 20 个草莓的 API 客户端可以发起类似 fruits=apples|bananas|strawberries&apples-quantity=1&bananas-quantity=5&strawberries-quantity=20 的请求。
致谢
API 开发者
- Yuri Astrakhan(创建者,2006 年 9 月 - 2007 年 9 月的首席开发者)
- Roan Kattouw(2007 年 9 月 - 2009 年的首席开发者)
- Victor Vasiliev
- Bryan Tong Minh
- Sam Reed
- Brad Jorsch(2013 年 - 2020 年的首席开发者)
请将您的评论、建议和问题发送至 mediawiki-api@lists.wikimedia.org,或在 https://phabricator.wikimedia.org/ 提交错误报告。