Une API – Application Programming Interface – est une interface permettant la connexion et l’échange d’informations avec d’autres applications au travers d’un ensemble de fonctions et de paramètres définis. En d’autres termes, les API permettent aux applications tierces d’accéder à des données et de s’appuyer sur des fonctionnalités d’une application sans nécessité de connaître sa logique interne.

Les API sont aujourd’hui largement proposées par les fournisseurs d’applications que ce soit Facebook, Twitter ou Waze pour ne citer que ceux-là.

Le petit schéma ci-dessous, illustrant la sollicitation d’une API par des applications, devrait clarifier davantage le sujet :

Échange de données entre applications via une API
Échange de données entre applications via une API

Dés lors, si vous développez une application qui nécessite de connaître l’état du trafic routier, vous pouvez vous appuyer sur l’API de Waze sans devoir tout réinventer par vous-même.

De la même façon, développer une application qui affiche la température dans plusieurs villes du monde, ne nécessite pas de disposer de capteurs de température.

Je pense qu’un exemple vous permettra de mieux comprendre ce dont il s’agit. Pour connaître par exemple la météo à Paris, il vous suffit d’utiliser l’API d’Open Weather Map via cet url :

http://api.openweathermap.org/data/2.5/weather?q=paris,fr&appid=644c2f1cbfc29866f412ab337954f92a&units=metric

En réponse à cette requête, le serveur d’Open Weather Map retourne les données demandées au format JSON. Vous avez probablement remarqué que l’url contient des paramètres comme appid ou encore units. Ces paramètres proposés par le fournisseur de l’API permettent à l’utilisateur de préciser sa demande, c’est le cas notamment du paramètre units qui indique à l’API, le système d’unités souhaité.

Pour la grande majorité des APIs disponibles sur le net, il vous sera demandé de vous inscrire au préalable afin d’obtenir une clé permettant l’accès aux données, appelées ressources. C’est le cas de la requête ci-dessus, pour laquelle la clé est renseignée via le paramètre appid.

Sans cette dernière, l’accès vous sera refusé :

http://api.openweathermap.org/data/2.5/weather?q=paris,fr

J’ai quelque peu anticipé en évoquant le format JSON, les requêtes, les paramètres et les ressources. Nous allons par la suite définir plus précisément ces éléments qui composent les API.

Sachez toutefois qu’il existe différents types d’API mais je n’aborderai, dans cet article, que les API de type REST.

Les API REST

REST, pour Representational State Transfer, est un type d’architecture qui repose sur le protocole HTTP. Une architecture REST respecte un certain nombre de règles et de conventions dans l’échange entre le client (votre ordinateur par exemple) et le serveur. 

Ainsi, pour accéder et manipuler les ressources, le client utilise les méthodes traditionnelles du protocole HTTP :

  • GET, pour lire des données.
  • POST, pour écrire des nouvelles données.
  • PUT, pour modifier des données.
  • DELETE, pour supprimer des données.

Ces ressources sont identifiées par des URI – Uniform Resource Identifier – proposés par le fournisseur de service. En effet, une API est logiquement accompagnée d’une documentation définissant les ressources accessibles et la manière d’y accéder notamment par les URI et les URL associés.

Les URI d’une API

A titre d’illustration, nous allons utiliser l’API Google Books pour obtenir des informations sur des œuvres littéraires. Cette API propose entre autres l’accès aux ressources suivantes :

Le premier URI identifie la collection d’œuvres quant au second il identifie une œuvre en particulier dans la collection à partir de son identifiant.

Nous n’utiliserons, pour exemple, que ces deux premiers URI car les trois derniers nécessitent un compte utilisateur et une authentification pour accéder aux ressources.

Les URL permettant d’accéder à ces ressources sont structurés de la sorte :

En ce qui concerne les paramètres utiles, la liste est disponible en cliquant sur ce lien.

Maintenant que nous savons accéder aux ressources de l’API Google Books, il ne nous reste plus qu’à la tester.

Un cas pratique avec l’API Google Books

Prenons un cas pratique : Je développe une application qui propose des conseils de lecture et des actualités liés aux technologies mobiles : Smartphone, applications mobiles, objets connectés, etc.

Je souhaite présenter aux utilisateur de mon application, un livre, intitulé l’instant mobile, qui traite de la stratégie et des usages du mobile. Le principe est d’utiliser l’API de Google Books pour obtenir automatiquement l’ensemble des informations utiles : auteur, couverture, date de publication, éditeur, etc. évitant, de la sorte, l’entreprise fastidieuse de le faire manuellement.

Autre chose, connaissant le titre exact du livre, je souhaite limiter la réponse à un seul et unique résultat, par conséquent l’URL utilisée par mon application sera la suivante :

https://www.googleapis.com/books/v1/volumes?q=instant%20mobile&maxResults=1

 Voilà ce que vous devriez obtenir (sans la mise en forme) :

A l’instar de l’API d’Open Weather Map, la réponse est au format JSON mais rien n’empêche une API d’utiliser un format différent tel que XML, HTML ou encore CSV…

A partir de là, mon application dispose de toutes les informations utiles pour une présentation complète du livre. On y trouve par exemple l’auteur, une description du sujet ou encore un lien vers la couverture.

La force des API

Pour simplifier les explications, nous avons choisi d’appeler manuellement les URL, mais vous vous doutez bien qu’en pratique, tout cela est intégré au sein d’une application qui communique de manière autonome avec les différentes API sur lesquelles elle s’appuie.

Comme je l’indiquais en introduction de cet article, l’utilisation d’API permet de s’appuyer sur des technologies, des fonctionnalités et des services existants facilitant ainsi la construction de nouveaux services. Du côté des fournisseurs de service, proposer une API présente également de nombreux avantages, à commencer par la mobilisation d’un écosystème de développeurs qui vont créer et enrichir le service à partir des ressources proposées. C’est aussi l’opportunité de générer des revenus en proposant un accès payant à certaines ressources.

Les acteurs publics ne sont pas en reste sur la proposition d’API. C’est le cas par exemple de la ville de Paris qui propose une API offrant l’accès à un jeu de données temps réels.

C’est un formidable outil à la disposition des acteurs publics pour favoriser le développement économique par l’implication de développeurs dans le design et le développement de solutions et de services innovants.

Si tout cela vous donne envie de proposer à votre tour une API, tant mieux, car c’est le sujet de mon prochain article !

En attendant, si des erreurs se sont glissées dans l’article, n’hésitez pas à nous en faire part.

Merci, et à très bientôt sur Frugal Prototype.