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ï¼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ï¼tokensï¼unblockï¼undeleteï¼unlinkaccountï¼uploadï¼userrightsï¼validatepasswordï¼watch
- é è¨å¼ï¼help
- format
輸åºçæ ¼å¼ã
- å®å¼ï¼jsonï¼jsonfmï¼noneï¼phpï¼phpfmï¼rawfmï¼xmlï¼xmlfm
- é è¨å¼ï¼jsonfm
- maxlag
æå¤§å»¶è¿å¯è¢«ç¨äºMediaWikiå®è£ äºæ°æ®åºå¤å¶éä¸ãè¦ä¿åå¯¼è´æ´å¤ç½ç«å¤å¶å»¶è¿çæä½ï¼æ¤åæ°å¯ä½¿å®¢æ·ç«¯çå¾ ç´å°å¤å¶å»¶è¿å°äºæå®å¼æ¶ãä¸ä¸åçè¿å¤å»¶è¿ï¼é误代ç maxlagä¼è¿åæ¶æ¯ï¼ä¾å¦çå¾ $hostä¸ï¼å»¶è¿$lagç§ã
åè§Manual: Maxlag parameter以è·åæ´å¤ä¿¡æ¯ã- ç±»åï¼æ´æ°
- 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://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
- 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/ã