MediaWiki API 說明
æ¤é çºèªåç¢çç MediaWiki API 說ææä»¶é é¢ã
說ææä»¶èç¯ä¾ï¼https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page
ä¸»è¦æ¨¡çµ
- 便ºï¼MediaWiki
- ææ¬æ¢æ¬¾ï¼GPL-2.0-or-later
çæ è³è¨ï¼MediaWiki API å·²æ¯æçãç©©å®ï¼ä¸¦ç©æ¥µæ¯æ´ä»¥æ¹åçä»é¢ãå管æååå¯è½é¿å ï¼ä½ä»å¶æéè¦éå¤§è®æ´çæ æ³ï¼è«è¨é±mediawiki-api-announce éµå¯æ¸ å®ä»¥ä¾¿ç²å¾æ´æ°éç¥ã
é¯èª¤çè«æ±ï¼ç¶ API æ¶å°é¯èª¤çè«æ±ï¼æç¼åºä»¥ãMediaWiki-API-Errorãçºéµç HTTP æ¨é æ¬ä½ï¼é¨å¾æ¨é æ¬ä½çå¼ï¼ä»¥åå³åçé¯èª¤ç¢¼æè¨çºç¸åå¼ã詳細è³è¨è«åé± API: é¯èª¤èè¦åã
測試ï¼è¦ç°¡å API è«æ±ç測試éç¨ï¼è«è¦ Special:ApiSandboxã
- action
è¦å·è¡çåä½ã
- block
- å°é使ç¨è ã
- changeauthenticationdata
- çºç®å使ç¨è è®æ´èº«åæ ¸å°è³æã
- changecontentmodel
- è®æ´é é¢çå §å®¹æ¨¡å
- checktoken
- 檢æ¥ä¾èª action=query&meta=tokens çæ¬ææææ§ã
- clearhasmsg
- æ¸
é¤ç®å使ç¨è
ç
hasmsgæ¨è¨ã - clientlogin
- 使ç¨äºåæµç¨ä¾ç»å ¥ wikiã
- compare
- æ¯è¼ 2 åé é¢éçå·®ç°ã
- createaccount
- å»ºç«æ°ä½¿ç¨è 帳èã
- delete
- åªé¤é é¢ã
- edit
- 建ç«è編輯é é¢ã
- emailuser
- å¯éé»åéµä»¶çµ¦ä½¿ç¨è ã
- expandtemplates
- å±éæææ¼ wikitext 䏿¨¡æ¿ã
- feedcontributions
- åå³ä½¿ç¨è è²¢ç»æè¦ã
- feedrecentchanges
- è¿åè¿æè®æ´æè¦ã
- feedwatchlist
- è¿åç£è¦æ¸ 宿è¦ã
- 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
- å¯åºä¸åç°¡ææ¢ç´¢ï¼Really Simple DiscoveryãRSDï¼æ¶æ§ã
- setnotificationtimestamp
- æ´æ°ç£è¦é é¢çéç¥æéæ³è¨ã
- setpagelanguage
- æ´æ¹é é¢çèªè¨ã
- tag
- å¾åå¥ä¿®è¨ææ¥èªé ç®æ·»å æç§»é¤è®æ´æ¨ç±¤ã
- unblock
- è§£é¤å°éä¸ä½ä½¿ç¨è ã
- undelete
- æ¢å¾©å·²åªé¤é é¢çä¿®è¨ã
- unlinkaccount
- ç§»é¤ç®å使ç¨è æé£çµå°çç¬¬ä¸æ¹å¸³èã
- upload
- ä¸å³æªæ¡ï¼æåå¾çå¾ ä¸å³ççæ ã
- userrights
- è®æ´ä¸ä½ä½¿ç¨è çç¾¤çµæå¡ã
- validatepassword
- é©èå¯ç¢¼æ¯å¦ç¬¦å wiki çå¯ç¢¼æ¹éã
- watch
- å¾ç®å使ç¨è çç£è¦æ¸ 宿·»å æç§»é¤é é¢ã
- cspreport
- å §é¨ãç±çè¦½å¨æä½¿ç¨ä¾åå ±éåå §å®¹å®å ¨æ¹éãæ¤æ¨¡çµææ°¸ä¸ä½¿ç¨ï¼é¤äºæ¯å¨è¢«ç±å ¼å®¹å §å®¹å®å ¨æ¹éç網路çè¦½å¨æä½¿ç¨æ æ³ä¸ã
- stashedit
- å §é¨ãå¨å享快å裡é å編輯ã
- å®å¼ï¼blockãâchangeauthenticationdataãâchangecontentmodelãâchecktokenãâclearhasmsgãâclientloginãâcompareãâcreateaccountãâ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ãâtagãâunblockãâundeleteãâunlinkaccountãâuploadãâuserrightsãâvalidatepasswordãâwatchãâcspreportãâstashedit
- é è¨å¼ï¼help
- format
輸åºçæ ¼å¼ã
- json
- ä½¿ç¨ JSON æ ¼å¼è¼¸åºè³æã
- jsonfm
- ä½¿ç¨ JSON æ ¼å¼è¼¸åºè³æï¼ä½¿ç¨HTMLæ ¼å¼é¡¯ç¤ºï¼ã
- none
- ä¸è¼¸åºã
- php
- 使ç¨åºåå PHP æ ¼å¼è¼¸åºè³æã
- phpfm
- 使ç¨åºåå PHP æ ¼å¼è¼¸åºè³æ (ä½¿ç¨ HTML æ ¼å¼é¡¯ç¤º)ã
- rawfm
- ä½¿ç¨ JSON æ ¼å¼çé¤é¯å ç´ è¼¸åºè³æ (ä½¿ç¨ HTML æ ¼å¼é¡¯ç¤º)ã
- xml
- ä½¿ç¨ XML æ ¼å¼è¼¸åºè³æã
- xmlfm
- ä½¿ç¨ XML æ ¼å¼è¼¸åºè³æ (ä½¿ç¨ HTML æ ¼å¼é¡¯ç¤º)ã
- å®å¼ï¼jsonãâjsonfmãânoneãâphpãâphpfmãârawfmãâxmlãâxmlfm
- é è¨å¼ï¼jsonfm
- maxlag
æå¤§å»¶é²å¯å¨ç¶ MediaWiki å®è£æ¼è³æåº«è¤å¯«å¢éæä½¿ç¨ãçºäºä¿åå¼èµ·æ´å¤ç«å°è¤å¯«å»¶é²çæä½ï¼æ¤åæ¸å¯è®å®¢æ¶ç«¯çå¾ è³è¤å¯«å»¶é²å°æ¼æå®å¼çºæ¢ãå¨é渡延é²çæ æ³ä¸ï¼é¯èª¤ç¢¼ maxlag æå¸¶æè忝 Waiting for $host: $lag seconds lagged çè¨æ¯å §å®¹åå³ã
è«æ¥çæåï¼Maxlag 忏ä¾ç²åæ´å¤è³è¨ã- é¡åï¼æ´æ¸
- smaxage
å°HTTPæ«åæ§å¶é æ¬ä½è¨çº
s-maxageç§ãé¯èª¤ä¸æåæ«åã- é¡åï¼æ´æ¸
- é è¨å¼ï¼0
- maxage
å°HTTPæ«åæ§å¶é æ¬ä½è¨çº
max-ageç§ãé¯èª¤ä¸æåæ«åã- é¡åï¼æ´æ¸
- é è¨å¼ï¼0
- assert
è¥è¨æ userï¼æç¢ºèªä½¿ç¨è æ¯å¦å·²ç»å ¥ï¼è¥è¨æ anonï¼æç¢ºèªæ¯å¦æ²æç»å ¥ï¼è¥è¨æ botï¼æç¢ºèªæ¯å¦çºæ©æ¢°äººä½¿ç¨è ã
- å®å¼ï¼anonãâbotãâuser
- assertuser
確èªç®å使ç¨è å°±æ¯æå®ç使ç¨è ã
- é¡åï¼ä½¿ç¨è ï¼æä½¿ç¨è å稱
- requestid
卿¤èæä¾çä»»ä½å¼é½å°å æ¬å¨é¿æä¹ä¸ãå¯ç¨æ¼ååè«æ±ã
- servedby
å¨çµæä¸å æ¬æåºè«æ±ç主æ©åã
- é¡åï¼å¸æå¼ï¼è©³ç´°è³è¨ï¼
- curtimestamp
å¨çµæä¸å æ¬ç®åçæéæ³è¨ã
- é¡åï¼å¸æå¼ï¼è©³ç´°è³è¨ï¼
- responselanginfo
å¨çµæä¸å æ¬uselangåerrorlangæç¨çèªè¨ã
- é¡åï¼å¸æå¼ï¼è©³ç´°è³è¨ï¼
- origin
ç¶ä½¿ç¨è·¨ç¶²å AJAX è«æ±ï¼cross-domain AJAX requestãCORSï¼ä¾åå API æï¼è¨å®æ¤çºèµ·å§ç¶²åãéå¿ é å å«å¨ä»»ä½é æª¢è«æ±è£¡ï¼å æ¤å¾æ¯è«æ± 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
- variant
è¯è¨åç§ãä» å½åºç¡è¯è¨æ¯æåç§è½¬æ¢æ¶èµ·ä½ç¨ã
- errorformat
ç¨æ¼è¦ååé¯èª¤æå輸åºçæ ¼å¼
- plaintext
- å æ¬HTMLæ ç¾çwikitext被移é¤å¹¶ä¸å®ä½è¢«æ¿æ¢ã
- wikitext
- æªè§£æç 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 ä¾ä½¿ç¨æ¤ wiki çå §å®¹èªè¨ãææ¯æå® uselang ä¾ä½¿ç¨è uselang 忏ç¸åçå¼ã
- é è¨å¼ï¼uselang
- errorsuselocal
è¥ææå®ï¼é¯èª¤æåæä½¿ç¨ä¾èª MediaWiki å½å空éçæ¬å°èªå®ç¾©è¨æ¯ã
- é¡åï¼å¸æå¼ï¼è©³ç´°è³è¨ï¼
- 主模çµä½¿ç¨èªªæ
- 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 ä¸çæéæ³è¨å½å¼åº«è¼¸å ¥æ ¼å¼æä»¶ä¾ç²å¾æ´å¤è³è¨ãæ¨è¦æ¡ç¨ ISO 8601 æ¥æèæéæ ¼å¼ï¼2001-01-15T14:56:00Zãå¦å¤ï¼å串 now è½ç¨ä¾æå®ç®åæå»çæéæ³è¨ã
模æ¿åæ¸
模æ¿åæ¸å¯æ¯æ´ç¶ API 模çµéè¦æ¿æäºåæ¸å¼çµ¦äºå¼çæ æ³ãèä¾ä¾èªªï¼å¦ææåç¨ä¾è«æ±æ°´æç API 模çµï¼å¯è½ææä¸åç¨ä¾æå®æ°´æç fruits 忏ï¼ä»¥åç¨ä¾æå®æå¤å°é¡æ°´æç模æ¿åæ¸ {fruit}-quantityãè¥ä¸å API 客æ¶ç«¯æ³è¦ 1 é¡èæã5 æ¢é¦èã以å 20 ç²èèæï¼å¯ä»¥ååºåæ¯ fruits=apples|bananas|strawberries&apples-quantity=1&bananas-quantity=5&strawberries-quantity=20 鿍£çè«æ±ã
製ä½ç¾¤
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/ã