API:Erreurs et avertissements
Cette page fait partie de la documentation de l'API MediaWiki Action. |
Si la requête à l'API pose problème, une erreur ou un avertissement sera émis (bien que la réponse HTTP soit habituellement encore 200 OK
).
Les avertissements sont émis pour des conditions non fatales comme rencontrer des paramètres non valides, alors que les erreurs n'apparaissent qu'avec des conditions fatales.
Avertissements
Les avertissements sont groupés en fonction du nom du module qui les a émis. Les avertissements multiples à partir d'un même module sont séparés par un saut de ligne. Dans l'ancien mode de formatage des erreurs (voir ci-dessous), qui est le mode par défaut, les avertissements sont fournis dans le format suivant :
"warnings": {
"modulename": {
"*": "warning text"
}
}
(*
est remplacé par warnings
quand formatversion=2
est utilisé).
Si une option non ancienne de formatage des erreurs est utilisée, les avertissements sont émis au même format que les erreurs.
Par exemple avec errorformat=wikitext
le format sera le suivant :
"warnings": [
{
"code": "warning message key",
"*": "text of warning",
"module": "API module which caused the warning"
}
]
(*
est remplacé par text
quand formatversion=2
est utilisé).
Messages d'avertissement
Type | Description | Message(s) d'avertissement |
---|---|---|
Sous-module désactivé | Le sous-module action=query a été désactivé dans le wiki. Pour vérifier si un module est disponible avant de l'invoquer, voir Comment vérifier si le module API est disponible ? dans la FAQ.
|
Le module submodulename a été désactivé. |
Sous-module absent | Le sous-module list , prop ou meta n'est pas présent dans le wiki, par exemple s'il est implémenté par une extension qui n'est plus chargée. |
Valeur non reconnue pour le paramètre list=submodule .
|
Validation du paramètre | Avertissements générés lors de la validation des paramètres de tout module API. paramname est remplacé par le nom du paramètre. |
|
Erreurs
Formats des erreurs
Depuis MediaWiki 1.29 les erreurs sont localisables et disponibles sous divers formats. Une erreur (ou un avertissement) sont attendus sous la forme d'un message, d'un code d'erreur (une chaîne de caractères arbitraire généralement générée à partir de la clé du message; voir aussi les Messages d'erreur standard ci-dessous), et de données supplémentaires facultatives (tableau associatif). La réponse de l'API avec des erreurs ressemblera à ceci :
{
"errors": [
{
"code": ''code d'erreur'',
/* ...message d'erreur..., */
"data": [ /* ...données supplémentaires... */ ],
"module": "chemin vers le module API qui a généré l'erreur"
},
/* ...autres erreurs... */
],
"docref": "message lisible par un humain pour trouver de l'aide"
}
La clé data
dans la sortie ci-dessus sera absente si aucune donnée supplémentaire ne doit être affichée.
La manière dont le message d'erreur dans la sortie ci-dessus est renvoyé au client est contrôlée par le paramètre d'API errorformat
.
Les différents formats d'erreur disponibles sont :
Format | Description | Sortie |
---|---|---|
html | Conçu pour l'affichage aux humains avec des clients qui reconnaissent le HTML. MediaWiki vérifiera que le HTML est fiable; il ne s'agit que d'un contrôle comme celui du contenu de l'article (les deux étant du wikicode analysé syntaxiquement). |
"html": "le message, interprété comme un wikicode et analysé en HTML"
|
wikicode |
"text": "le message tel qu'il est, avec la substitution des paramètres mais sans l'analyse syntaxique"
| |
texte en clair | Intégré pour l'affichage aux humain pour les clients qui ne reconnaissent pas le HTML. La conversion du texte à plat est une transformation minimale au meilleur effort pour rendre le message (supposé contenir le wikicode) plus lisible : les balises sont supprimées, les entités HTML sont remplacées, certaines balises HTML sont intelligemment remplacées par une ponctuation. |
"text": ''le message, en wikicode, mais avec une conversion ajoutée du texte à plat''
|
à plat | Prévu pour être dans un format lisible par la machine (notons que la clé de l'erreur est plus unique que le code d'erreur). Les paramètres peuvent eux-mêmes être des objets avec des champs key et params . |
"key": "clé de message",
"params": [ /* ...paramètres du message... */ ]
|
aucun | Pas d'information du tout sur le message. | |
bc | Valeur par défaut pour backward compatibility. Il n'y a aucun intérêt à spécifier cette valeur, utiliser à la place un des formats non anciens. | Voir l'Ancien format |
Pour les modes de formatage qui impliquent la recherche de messages (html
, wikitext
et plaintext
) le paramètre API errorlang
peut être utilisé pour définir la langue (uniquement nécessaire lorsque différente de celle du contenu) et errorsuselocal
pour définir si l'espace de noms MediaWiki: peut être utilisé pour redéfinir les messages d'erreur par défaut.
Les codes d'erreur sont aussi renvoyés dans l'entête HTTP de la réponse MediaWiki-API-Error
séparés par des virgules quand ils sont plusieurs.
Pour une exemple de réponse d'erreur ou pour tester la gestion des erreurs côté client, voir https://en.wikipedia.org/w/api.php?action=blah&errorformat=plaintext&format=jsonfm&formatversion=2
Les réponses de l'API peuvent contenir plusieurs erreurs.
Par exemple, essayez d'ajouter les lignes the abusefilter will block this
et the abusefilter will also block this
à une page de test de Wikipédia comme le bac à sable de l'API.
(si vous êtes connecté, allez à l'onglet action=edit et cliquez sur Auto-remplissage du jeton
avant de faire la requête).
Lorsque errorformat
n'est pas défini (ou initialisé à bc
), les erreurs seront affichées dans l'ancien format.
Ancien format
Dans l'ancien format d'erreur, il y a toujours au plus une erreur; les autres sont absentes. La réponse ressemble à ceci :
{
"error": {
"code": ''code d'erreur'',
"info": ''le message tel qu'il est, en substituant les paramètres, mais sans l'analyse syntaxique'',
/* ...autres données supplémentaires... */
}
}
Les données supplémentaires dans la sortie ci-dessus sont liées dans l'objet au lieu d'être sous la clé data
.
Messages d'erreur dans la documentation
Les messages d'erreur sont documentés dans ce wiki comme indiqué ci-dessous, ce qui correspond à la réponse en erreur au format json de l'Ancien format ci-dessus :
Code | Information |
---|---|
code d'erreur | message d'erreur |
Les différents messages d'erreur sont :
Type | Description | Messages d'erreur | |
---|---|---|---|
Code | Information | ||
Module désactivé | The action module has been disabled in the wiki. To check if a module is available before invoking it, see How do I check if an API module is available? in the FAQ. | moduledisabled | The modulename module has been disabled. |
Module absent | The action module is not present in the wiki, for example if it is implemented by an extension that isn't loaded | unknown_action | Unrecognized value for parameter action: modulename. |
Validation de paramètre | Erreurs détectées lors de la validation des paramètres de tout module d'API. paramname est remplacé par le nom du paramètre. | multival_paramname | Only one of 'value1', 'value2', 'value3' is allowed for parameter 'paramname' |
unknown_paramname | Valeur non reconnue du paramètre paramname: value. | ||
paramname | paramname ne peut pas être inférieur à min (fixé à value). | ||
paramname | paramname ne peut pas dépasser max (fixé à value) pour les robots ou les opérateurs système. | ||
paramname | paramname ne peut pas dépasser max (fixé à value) pour les utilisateurs. | ||
badtimestamp_paramname | Valeur non valide « value » pour le paramètre de référence horaire paramname. | ||
baduser_paramname | Valeur « value » non valide pour le paramètre utilisateur paramname. | ||
invalidparammix | The parameters param1, param2, param3 cannot be used together | ||
missingparam | One of the parameters param1, param2, param3 is required | ||
_badcontinue | Invalid continue param. You should pass the original value returned by the previous query |
Messages d'erreur standard
Certains messages d'erreur génériques sont partagés entre les modules.
Si un module peut générer ces erreurs, elle sont explicitement indiquées dans sa section Possible errors
.
Code | Information |
---|---|
unknownerror | Erreur inconnue : cela indique habituellement qu'une chose bizarre s'est produite comme un conflit rare entre conditions. Si ce type d'erreur apparaît, soumettez à nouveau votre requête tant qu'elle est en échec, ou que vous n'avez aucun message plus précis. |
unknownerror | Erreur inconnue : « code d'erreur ». |
unknownerror-nocode | Erreur inconnue. |
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 | Cette page est protégée contre les modifications car elle est incluse par la page suivante, qui a été protégée avec l’option « protection en cascade » activée :
liste des pages protégées en cascade |
protectedpage | The "right" right is required to edit this page |
permissiondenied | Autorisation refusée. |
confirmemail | Vous devez confirmer votre adresse de courriel avant de modifier des pages.
Veuillez définir et valider votre adresse de courriel via vos préférences d’utilisateur. |
blocked | You have been blocked from editing |
autoblocked | Your IP address has been blocked automatically, because it was used by a blocked user |
ratelimited | You've exceeded your rate limit. Please wait some time and try again |
readonly | The wiki is currently in read-only mode |
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
|
Notes supplémentaires
- Toutes les sorties d'erreurs et les avertissements utilisent
format=json&formatversion=2
. Pourformatversion=1
, le champdocref
est remplacé par*
.
- Maintenu par MediaWiki Interfaces Team.
- Discussion en direct (IRC): #mediawiki-core connecter
- Suivi des problèmes : Phabricator MediaWiki-Action-API (rapporter un problème)