API:Data formats/fr

This page is a translated version of the page API:Data formats and the translation is 100% complete.

Entrées

L'API récupère ses entrées à partir des paramètres fournis dans la requête HTTP dans le format application/x-www-form-urlencoded ou multipart/form-data . (unlike REST API, the Action API currently does not support application/json input format.) Chaque module et chaque sous-module a sa propre liste de paramètres, qui sont listés dans la documentation et dans action=help. Ils peuvent également être récupérés par action=paraminfo .

Encodage

Toute entrée doit être du UTF-8 valide, sous la forme NFC. MediaWiki essayera de convertir les autres formats, ce qui pourra éventuellement générer des erreurs.

Paramètres multi-valeurs

Les paramètres qui prennent plusieurs valeurs sont normalement envoyés avec les valeurs séparées par une barre verticale (caractère pipe |), par exemple param=value1|value2 . Si une valeur contient le caractère pipe lui-même, utilisez U+001F (séparateur unitaire) comme séparateur et préfixez la valeur avec U+001F, par exemple param=%1Fvalue1%1Fvalue2.

Pour savoir si un paramètre accepte plusieurs valeurs, lisez explicitement la documentation du module.

Paramètres booléens

Si un paramètre booléen figure dans une requête HTTP, il est considéré à true quelle que soit sa valeur. Pour que sa valeur soit false, il suffit de ne pas le fournir. La meilleure manière de spécifier une valeur à true dans une requête HTTP est d'utiliser unParam=; ce qui suit le = assure que l'explorateur où la bibliothèque HTTP ne supprimera pas le "vide" de unParam.

Horodatages

Les paramètres qui contiennent des valeurs de références horaires (horodatage) acceptent des valeurs de temps sous différents formats :

En sortie, les horodatages sont toujours au format ISO 8601.

Sortie

Le format de sortie standard et par défaut de MediaWiki est JSON. Tous les autres formats ne sont pas recommandés.

Le format de sortie doit toujours être spécifié en utilisant format=yourformat avec yourformat égal à l'une des valeurs suivantes :

  • json : format JSON (recommandé)
  • php : format PHP sérialisé (obsolète)
  • xml : format XML (obsolète)
  • txt : format PHP print_r() (supprimé en 1.27)
  • dbg : format PHP var_export() (supprimé en 1.27)
  • yaml : format YAML (supprimé en 1.27)
  • wddx : format WDDX (supprimé en 1.26)
  • dump : format PHP var_dump() (supprimé en 1.26)
  • none : Renvoie une réponse vide. 1.21+

Exemple

Obtenir la sortie en JSON.

Réponse

{
  "query": {
    "pages": {
      "217225": {
        "pageid": 217225,
        "ns": 0,
        "title": "Main page"
      }
    }
  }
}

Tous les modules permettent d'utiliser n'importe quel format générique pour les informations de sortie - sauf indication contraire. Pour simplifier le débogage, tous les formats génériques possèdent aussi l'option « mise en forme HTML améliorée pour l'impression » avec le suffixe fm par exemple jsonfm .

Paramètres JSON

Les paramètres suivants peuvent être utilisés avec format=json et format=jsonfm :

  • utf8 : Encode la plupart des (mais pas tous) caractères non-ASCII en UTF-8 au lieu de les remplacer par des séquences d'échappement hexadécimales. Type: boolean.
  • ascii : Encode tous les caractères non-ASCII en utilisant les séquences d'échappement hexadécimales. Type: boolean.
  • formatversion : Formatage de la sortie. 1.25+
    • 1 : Format de compatibilité arrière, utilise les clés * pour les nœuds de contenu, encode les caractères non-ASCII en utilisant des séquences d'échappement hexadécimales.
    • 2 : Format moderne. Renvoie les réponses dans un format plus propre, encode la plupart des caractères non-ASCII en UTF-8. (recommandé)
  • callback : La réponse est au format JSON et se fait par un appel à une fonction JavaScript pour inclure le résultat. Par mesure de sécurité ces réponses ignorent les cookies de session du navigateur et répondent sans donner d'informations spécifiques à l'utilisateur actuellement connecté. Cela signifie que les fonctionnalités suivantes sont désactivées par mesure de sécurité :
    • Les jetons ne peuvent pas être obtenus, donc les actions de modification d'état ne sont pas possibles.
    • Le client est traité comme un utilisateur anonyme (c'est-à-dire non connecté) pour tous les sujets, même après s'être connecté via action=login . Cela signifie que les modules qui nécessitent des droits supplémentaires ne fonctionneront pas à moins que le wiki cible permette aux utilisateurs anonymes de les utiliser.

Notes supplémentaires

  • les formats de sortie XML et PHP sont obsolètes mais encore utilisés. Les clients écrits en PHP doivent éviter d'utiliser le format PHP parce qu'il n'est strictement pas sécurisé. Il est gardé pour l'instant simplement à cause de sa popularité.
  • Il existe beaucoup de bibliothèques de conversion et de convertisseurs en ligne pour transformer les réponses JSON en d'autres formats; par exemple, JSON-CSV convertit en liste de valeurs séparées par des virgules .
  • Les modules de flux tels que les flux des modifications récentes réécrasent le format standard de sortie, au lieu d'utiliser RSS ou Atom, comme spécifié par leur paramètre feedformat . Dans ces cas, le format spécifié par le paramètre format n'est utilisé que s'il y a une erreur.

Voir aussi