4. API

Qu'est-ce qu'une API ?

Une API, — ou Application Programming Interface — est « un ensemble de fonctions informatiques par lesquelles deux logiciels interagissent sans intermédiation humaine » (Rémi Mercier). Par exemple, « l’utilisateur effectue une requête sous la forme d’une requête HTTP, le service web met en forme les données correspondant à la requête et les renvoie à l’utilisateur, dans un format défini à l’avance » (Romain Tavenard).

Il est possible d'intégrer l'API à un programme en R, Python, Javascript, etc.

L’API publique de Wikipedia est une API RESTful, c’est à dire qu’elle respecte les normes imposées par le standard d’API REST.
Représentation schématique du fonctionnement d'une API

Mode d'emploi

Voici une première requête API, la plus simple possible : 

https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche
  • https://fr.wikipedia.org/w/api.php est l’endpoint de l’API REST, c’est-à-dire l’URL à laquelle envoyer les appels. Tous les wikis de Wikimedia Foundation disposent d'une API accessible via une URL de ce type, par exemple :
  • ? : le premier paramètre est précédé d'un séparateur point d'interrogation.
  • action=query : premier paramètre de cet appel qui se compose du paramètre action et de sa valeur query, qui signifient de récupérer le contenu d’un article Wikipedia.
  • titles=Perruche : le paramètre titles définit le titre de l'article Wikipedia ciblé, en l'occurence Perruche. L’API permet également de préciser plusieurs valeurs séparées par une barre verticale (|) pour obtenir les contenus de plusieurs articles dans un seul et même appel. Par exemple : titles=Perruche|Perroquet|Corneille|Corbeau.

Cette première requête renvoie un résultat tout simple composé du titre de la page ciblée ("title": Perruche), son numéro d'identifiant ("pageid": 250509) et l'espace de nom de la page ("ns" : 0 correspond à l'espace de nom principal où figurent les articles encyclopédiques).

Résultat de la requête la plus simple


Nous allons complexifier notre première requête en ajoutant petit à petit des paramètres :

https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche&prop=extracts
  • prop=extracts : ce paramètre permet de récupérer un extrait de l'article.

Résultat de la requête API affichant un extrait de l'article


https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche&prop=extracts&exchars=500
  • exchars=500 : ce paramètre limite l'extrait à 500 caractères.

Résultat de la requête API affichant 500 caractères


https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche&prop=extracts&exchars=500&explaintext
  • explaintext : ce paramètre permet d'obtenir l'extrait en texte brut plutôt qu’en HTML. Il s'agit d'un paramètre booléen. Il n'a donc que deux valeurs possibles : vrai ou faux.

Résultat de la requête API en texte brut


https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche&prop=extracts&exchars=500&explaintext&utf8
  • utf8 : paramètre booléen qui active l’encodage du texte en UTF-8

Résultat de la requête API en UTF-8


https://fr.wikipedia.org/w/api.php?action=query&titles=Perruche&prop=extracts&exchars=500&explaintext&utf8&format=json
  • format=json : il est possible de récupérer les données dans différents formats (json, jsonfm, none, php, phpfm, rawfm, xml et xmlfm).

Résultat de la requête API au format JSON

Documentation
La plupart des actions de l'API REST de MediaWiki permettant d'extraire les données sont dans QUERY et PARSE.


Politiques et recommandations

S'authentifier. Afin de ne pas surcharger les serveurs, une limitation du débit de l’API est mise en place. Il est possible de faire 500 requêtes par heure par adresse IP ou 5000 avec un jeton d’accès personnel. Pour de gros volumes de données, il vaut mieux utiliser les dumps.

Exemples