Jump to content

API:Chyby a varování

From mediawiki.org
This page is a translated version of the page API:Errors and warnings and the translation is 100% complete.

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.
  • Príliš veľa hodnôt zadaných pre parameter paramname. Limit je limit.
  • Nerozpoznaná hodnota parametra paramname: value.
  • Nerozpoznané hodnoty parametra paramname: value1, value2, value3.

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. U formatversion=1 bude pole docref nahrazeno *.