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 :

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 :
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 :
GET /volumes GET /volumes/volumeId GET /mylibrary/bookshelves GET /mylibrary/bookshelves/shelf GET /mylibrary/bookshelves/shelf/volumes
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 :
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
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) :
{ "kind": "books#volumes", "totalItems": 396, "items": [ { "kind": "books#volume", "id": "LNGoCwAAQBAJ", "etag": "WcQ7cb/akK8", "selfLink": "https://www.googleapis.com/books/v1/volumes/LNGoCwAAQBAJ", "volumeInfo": { "title": "L'instant mobile", "subtitle": "Deux minutes pour convaincre votre client mobile", "authors": [ "Pascal Poty" ], "publisher": "EdiPro", "publishedDate": "2016-03-01", "description": "Obtenez les clés du succès pour vos instants mobiles ! Nous regardons en moyenne notre écran de smartphone 150 fois par jour. Toutefois, ces interactions dépassent rarement deux minutes. Pour être présente sur l’écran de votre client mobile, votre entreprise doit donc convaincre endéans ces deux minutes. C’est l’instant mobile, un instant éphémère, récurrent, localisé et éminemment personnel. Sa compréhension passe donc par une agilité inédite pour les entreprises. En effet, le mobile ne constitue pas un canal supplémentaire de leur offre de produits et services, mais bien un levier stratégique pour réussir leur transformation digitale et organisationnelle. Le smartphone est au carrefour de ces interactions multiples et complexes où la capture de l’attention du consommateur devient un enjeu majeur pour les marques et les enseignes, y compris dans l’environnement physique du point de vente. Maîtriser les codes de l’instant mobile, c’est entrer en conversation avec votre client, mobiliser votre communauté et plus globalement renforcer l’attachement et la fidélité à votre marque. A l’image de nos vies quotidiennes, cet ouvrage est donc avant tout un concentré d’instants mobiles. Ceux-ci y sont décryptés au travers d’exemples concrets à destination des entreprises souhaitant disposer des clés nécessaires pour intégrer les exigences d’une réalité nouvelle, où le smartphone est devenu ce premier écran par lequel leurs clients vont les découvrir. Cet excellent manuel nous montre comment tirer avantage d’une époque où le téléphone et la technologie en général dominent. A PROPOS DE L’ÉDITEUR Depuis plus de 15 ans, Edi.pro, maison d’édition belge, publie des livres et des lettres d’informations à destination des professionnels (dirigeants de PME, cadres, gestionnaires, professions libérales, enseignants, étudiants,...). Distribué dans toute la francophonie, Edi.pro édite des ouvrages, papier et électronique, tant en français qu’en néerlandais. Le catalogue compte près de 250 titres rédigés par des spécialistes de terrain. A PROPOS DE L’AUTEUR Pascal Poty est juriste spécialisé dans le droit de la concurrence et le droit des télécommunications pour le compte de plusieurs opérateurs de télécommunications mobiles en Europe. Il donne aussi des cours en droit des communications électroniques dans le Master Télécommunications de l’Université des Sciences et Technologies de Lille 1 et de l’Ecole Nationale des Ingénieurs en Communications (ENIC) ainsi que des cours en droit des TIC dans le Master Diffusion des connaissances scientifiques et technologiques, option Veille stratégique et Intelligence Industrielle (VS2I) de l’Université des Sciences et Technologies de Lille 1. Il tient également un blog (Mobisphere.be) où il parle de l'expérience mobile sous toutes ses formes : technologique, économique, juridique et sociale.", "industryIdentifiers": [ { "type": "ISBN_13", "identifier": "9782511040447" }, { "type": "ISBN_10", "identifier": "2511040441" } ], "readingModes": { "text": true, "image": true }, "pageCount": 201, "printType": "BOOK", "categories": [ "Technology & Engineering" ], "maturityRating": "NOT_MATURE", "allowAnonLogging": false, "contentVersion": "preview-1.0.0", "imageLinks": { "smallThumbnail": "http://books.google.be/books/content?id=LNGoCwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api", "thumbnail": "http://books.google.be/books/content?id=LNGoCwAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api" }, "language": "fr", "previewLink": "http://books.google.be/books?id=LNGoCwAAQBAJ&pg=PT135&dq=instant+mobile&hl=&cd=1&source=gbs_api", "infoLink": "http://books.google.be/books?id=LNGoCwAAQBAJ&dq=instant+mobile&hl=&source=gbs_api", "canonicalVolumeLink": "http://books.google.be/books/about/L_instant_mobile.html?hl=&id=LNGoCwAAQBAJ" }, "saleInfo": { "country": "BE", "saleability": "FOR_SALE", "isEbook": true, "listPrice": { "amount": 20.99, "currencyCode": "EUR" }, "retailPrice": { "amount": 14.69, "currencyCode": "EUR" }, "buyLink": "http://books.google.be/books?id=LNGoCwAAQBAJ&dq=instant+mobile&hl=&buy=&source=gbs_api", "offers": [ { "finskyOfferType": 1, "listPrice": { "amountInMicros": 2.099E7, "currencyCode": "EUR" }, "retailPrice": { "amountInMicros": 1.469E7, "currencyCode": "EUR" } } ] }, "accessInfo": { "country": "BE", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED", "epub": { "isAvailable": true }, "pdf": { "isAvailable": true }, "webReaderLink": "http://books.google.be/books/reader?id=LNGoCwAAQBAJ&hl=&printsec=frontcover&output=reader&source=gbs_api", "accessViewStatus": "SAMPLE", "quoteSharingAllowed": false }, "searchInfo": { "textSnippet": "L'<b>instant mobile</b> serait donc une combinaison permanente de ces interactions <br>\nalternant entre besoins de divertissement, praticité ou encore contrôle. Dès lors, <br>\nle mobile ne devrait donc plus être considéré comme un canal de communication<br>\n ..." } } ] }
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.

Ali Benfattoum
Intrapreneur, Tech Enthusiast, IoT Expert, Smart City Specialist…
Suivez moi sur @alifrugal
Related Posts
27 décembre 2016
Une API en 15 minutes avec MongoDB, Mongoose et Node.js
Afin de conclure la série d'articles…
14 août 2016
Développez votre propre API avec Node.js et Express
Chose promise, chose due : nous allons…