API:Chyby a varování
| Tato stránka je součástí dokumentace k API Action MediaWiki. |
Pokud se v požadavku API něco pokazí, bude vyvolána chyba nebo varování (ačkoli odpověď HTTP bude obvykle stále 200 OK).
Varování se vyvolávají pro nefatální podmínky, jako jsou neplatné parametry, zatímco chyby se vyvolávají pouze pro fatální podmínky.
Varování
Varování jsou seskupena podle názvu modulu, který je způsobil. Více varování ze stejného modulu je odděleno znakem nového řádku. V režimu formátování chyb staršího formátu (viz níže), který je výchozí, se varování vypisují v následujícím formátu:
"warnings": {
"modulename": {
"*": "warning text"
}
}
(* bude nahrazen warnings, pokud se použije formatversion=2.)
Pokud se použije nelegální formátování chyb, varování se vypisují ve stejném formátu jako chyby.
Např. s errorformat=wikitext bude formát:
"warnings": [
{
"code": "warning message key",
"*": "text of warning",
"module": "API module which caused the warning"
}
]
(* bude nahrazen 2 dolary, pokud se použije formatversion=2.)
Varovné zprávy
| Typ | Popis | Varovná zpráva(y) |
|---|---|---|
| Zakázaný submodul | Podmodul action=query byl na wiki zakázán. Chcete-li zkontrolovat, zda je modul před jeho spuštěním k dispozici, podívejte se do části Jak zkontroluji, zda je modul API k dispozici? v Často kladených otázkách.
|
Modul submodulename bol vypnutý. |
| Chybějící submodul | Podmodul list, prop nebo meta není ve wiki přítomen, například pokud je implementován rozšířením, které není načteno.
|
Nerozpoznaná hodnota parametra list=submodule: value. |
| Ověření parametrů | Varování vyvolána při ověřování parametrů libovolného modulu API. nazevparametru je nahrazen názvem parametru. |
|
Chyby
Formáty chyb
Od verze MediaWiki 1.29 jsou chyby lokalizovatelné a dostupné v několika formátech. Chyba (nebo varování) by měla obsahovat zprávu, chybový kód (libovolný řetězec, obvykle generovaný z klíče zprávy. Viz také #Standardní chybové zprávy níže) a volitelná další data (asociativní pole). Odpověď API s chybami bude vypadat takto:
{
"errors": [
{
"code": "kód chyb",
/* ...chybová zpráva..., */
"data": [ /* ...jakékoli další údaje... */ ],
"module": "cesta k modulu API, který vygeneroval chybu"
},
/* ...další chyby... */
],
"docref": "zpráva čitelná člověkem s informacemi o tom, kde najít pomoc"
}
Klíč data ve výše uvedeném výstupu bude chybět, pokud nebudou k dispozici žádná další data k zobrazení.
Způsob, jakým je chybová zpráva ve výše uvedeném výstupu vrácena klientovi, je řízen parametrem API errorformat.
Různé dostupné formáty chyb jsou:
| Formát | Popis | Výstup |
|---|---|---|
| html | Určeno pro zobrazení lidmi v klientech s podporou HTML. MediaWiki zajistí, že HTML je bezpečné. Je stejně důvěryhodné jako obsah článku (obojí je analyzovaný Wikitext). |
"html": "zpráva, interpretovaná jako wikitext a analyzovaná do HTML"
|
| wikitext |
"text": "zpráva tak, jak je, se záměnou parametrů, ale bez jakékoli analýzy"
| |
| prostý text | Určeno pro zobrazení lidmi v klientech, kteří nepodporují HTML. Konverze prostého textu je minimální transformace s maximálním úsilím, jejímž cílem je učinit zprávu (u které se předpokládá, že obsahuje wikitext) čitelnější: Tagy jsou odstraněny, entity HTML jsou nahrazeny, určité tagy HTML jsou inteligentně nahrazeny interpunkcí. |
"text": "zpráva, podobně jako wikitext, ale s přidanou konverzí prostého textu"
|
| prvotní | Určeno jako strojově čitelný formát (klíč chyby je unikátnější než kód chyby). Parametry mohou být samy o sobě objekty s poli key a params. |
"key": "klíč zprávy",
"params": [ /* ...parametry zprávy... */ ]
|
| žádný | Žádné informace o zprávě. | |
| bc | Výchozí, backward compatibility. Nemá smysl zadávat tuto hodnotu, použijte místo toho jeden z nestarších formátů. | Viz #Starší formát |
Pro režimy formátování, které zahrnují vyhledávání zpráv (html, wikitext a plaintext), lze použít parametr API errorlang k nastavení jazyka (nutný pouze v případě, že se liší od jazyka obsahu) a errorsuselocal k nastavení, zda lze k přepsání výchozích chybových zpráv použít jmenný prostor MediaWiki:.
Chybové kódy jsou také vráceny v HTTP hlavičce odpovědi MediaWiki-API-Error, oddělené čárkami, pokud je chyb více.
Příklad chybové odpovědi nebo otestování zpracování chyb vaším klientem naleznete na adrese https://en.wikipedia.org/w/api.php?action=blah&errorformat=plaintext&format=jsonfm&formatversion=2.
Odpovědi API mohou obsahovat více chyb.
Například zkuste přidat řádky the abusefilter will block this
a the abusefilter will also block this
na testovací stránku Wikipedie jako sandbox API
(pokud jste přihlášeni, přejděte na kartu action=edit a před odesláním požadavku klikněte nejprve na Automaticky naplnit token
).
Pokud není nastavena hodnota errorformat (nebo je nastavena na hodnotu bc), chyby se zobrazí ve starším formátu.
Starší formát
Ve starším formátu chyb je vždy maximálně jedna chyba. Další chyby se zahazují. Odpověď vypadá takto:
{
"error": {
"code": "kód chyby",
"info": "zpráva tak, jak je, se záměnou parametrů, ale bez jakékoli analýzy",
/* ...jakékoli další údaje... */
}
}
Dodatečná data ve výše uvedeném výstupu jsou vložena do objektu, místo aby byla pod klíčem data.
Chybové zprávy v dokumentaci
Chybové zprávy jsou zdokumentovány v této wiki, jak je uvedeno níže, což odpovídá chybové odpovědi JSON ve formátu #Dědictví výše:
| Kód | Popis |
|---|---|
| chybový kód | error message |
Různé chybové zprávy jsou:
| Typ | Popis | Chybové zprávy | |
|---|---|---|---|
| Kód | Popis | ||
| Zakázaný modul | Modul akcí byl na wiki zakázán. Chcete-li zkontrolovat, zda je modul před jeho spuštěním, podívejte se do části Jak zkontroluji, zda je modul API k dispozici? v Často kladených otázkách. | moduledisabled | Modul modulename bol vypnutý. |
| Chybějící modul | Modul akcí není na wiki přítomen, například pokud je implementován rozšířením, které není načteno. | unknown_action | Nerozpoznaná hodnota parametra action: modulename. |
| Ověření parametrů | Chyby vyvolány při ověřování parametrů libovolného modulu API. paramname je nahrazen názvem parametru. | multival_paramname | Pre parameter 'value1', 'value2', 'value3' je povolené iba jedno z 'paramname'. |
| unknown_paramname | Nerozpoznaná hodnota parametra paramname: value. | ||
| paramname | paramname nesmie byť menšie ako min (nastavené na value). | ||
| paramname | paramname nesmie byť pre botov ani správcov vyššie ako max (nastavené na value). | ||
| paramname | paramname nesmie byť pre používateľov vyššie ako max (nastavené na value). | ||
| badtimestamp_paramname | Neplatná hodnota „value“ parametra časovej pečiatky paramname. | ||
| baduser_paramname | Neplatná hodnota „value“ parametra používateľa paramname. | ||
| invalidparammix | Parametre param1, param2, param3 nemožno použiť spolu. | ||
| missingparam-one-of | Jeden z parametrov param1, param2, param3 je povinný. | ||
| _badcontinue | Neplatný parameter continue. Mali by ste odovzdať pôvodnú hodnotu vrátenú predchádzajúcim dotazom. | ||
Standardní chybové zprávy
Některé obecné chybové zprávy jsou sdíleny mezi moduly.
Pokud modul může tyto chyby vyvolávat, je to výslovně uvedeno v jeho části Možné chyby.
| Kód | Popis |
|---|---|
| unknownerror | Neznámá chyba: To obvykle znamená něco šíleného, jako je porušení podmínek. Pokud dostanete tuto chybu, opakujte svůj požadavek, dokud neuspěje nebo nevrátí informativní chybovou zprávu |
| unknownerror | Neznáma chyba: „chybový kód“. |
| unknownerror-nocode | Neznáma chyba. |
| unsupportednamespace | Pages in the Special namespace can't be edited |
| protectednamespace-interface | You're not allowed to edit interface messages |
| protectednamespace | You're not allowed to edit pages in the "namespace" namespace |
| customcssjsprotected | You're not allowed to edit custom CSS and JavaScript pages |
| cascadeprotected | Tato stránka je zamčena, neboť je vložena na následující stránky, zamčené kaskádovým zámkem:
seznam stránek chráněných kaskádou |
| protectedpage | The "right" right is required to edit this page |
| permissiondenied | Prístup zamietnutý. |
| confirmemail | Pro editaci stránek je vyžadováno potvrzení vaší e-mailové adresy.
Na stránce nastavení zadejte a nechte potvrdit svou e-mailovou adresu. |
| blocked | Byla vám zablokována možnost editace. |
| autoblocked | Vaša IP adresa bola zablokovaná automaticky, pretože ju používal zablokovaný používateľ. |
| ratelimited | Prekročili ste svoj rýchlostný limit. Chvíľu počkajte a skúste to znova. |
| readonly | Wiki je právě v módu pro čtení a nelze ji editovat. |
| badtoken | Invalid token (did you remember to urlencode it?) |
| missingtitle | The page you requested doesn't exist |
| mustbeposted | Type of your HTTP request message must be POST |
| hookaborted | The modification you tried to make was aborted by an extension hook |
| nosuchpageid | There is no page with ID id |
| nosuchrevid | There is no revision with ID id |
| nosuchrcid | There is no change with rcid "id" |
| nosuchuser | The user you specified doesn't exist |
| invalidtitle | Bad title "title" |
| invaliduser | Invalid username "username" |
| assertbotfailed | "assert=bot" has been used, but logged in user is not a bot |
| assertuserfailed | "assert=user" has been used, but user is not logged in |
| readapidenied | You need read permission to use this module |
| noapiwrite | Editing of this wiki through the API is disabled. Make sure the $wgEnableWriteAPI=true; statement is included in the wiki's LocalSettings.php file
|
Další poznámky
- Všechny výše uvedené chyby a varovné výstupy používají
format=json&formatversion=2. Uformatversion=1bude poledocrefnahrazeno*.
- Spravováno MediaWiki Interfaces Team.
- Živý chat (IRC): #mediawiki-core připojit se
- Nástroj pro sledování problémů: Phabricator MediaWiki-Action-API (nahlášení problému)