Découvrez le concept d’une API
C’est dimanche. Vous vous réveillez tard, et même si vous savez que vous devriez vous lever, vous préférez rester confortablement emmitouflé dans votre couette. Vous pensez qu’en février, profiter de la douceur du Portugal ne serait pas une mauvaise idée. Alors, vous ouvrez une application de comparaison de vols et voilà ! ✨ Vous découvrez plusieurs offres de différentes compagnies aériennes pour Lisbonne ! Bon, l’avion n’est pas très écologique et les horaires ne sont pas idéaux, alors vous décidez d’opter pour le train. Vous ouvrez une application de réservation de billets de train et pareil ! Vous trouvez plusieurs offres de trains pour Lisbonne en passant par l’Espagne. Tout cela sans avoir à chercher les informations sur les sites de chaque compagnie ferroviaire ou aérienne. Plutôt pratique, non ?
Vous êtes habitué à voir ces données apparaître devant vos yeux comme par magie, que ce soit sur les réseaux sociaux ou les applications de comparaison en tout genre. De votre point de vue, c’est simple : les informations arrivent au fur et à mesure, sans effort. Mais en réalité, il y a un travail important effectué en coulisses pour rendre cela possible. Et pour que tout fonctionne, nous avons besoin d’un outil essentiel : une API.
API est l’abréviation d’Application Programming Interface (ou interface de programmation d’application en français). En termes simples : c’est un moyen de communication entre deux logiciels, que ce soit entre les différents composants d’une application ou entre deux applications différentes.
Comprendre le fonctionnement des API
Eh bien, pour répondre à cette question, il est nécessaire de comprendre le fonctionnement d’une API. Mais avant cela, revoyons ensemble les bases de la communication entre un serveur et un client.
Prenons l’exemple d’Air France, une compagnie aérienne française. Les serveurs d’Air France, quelque part dans le monde, ont accès à toutes les données que vous souhaitez consulter pour un vol Paris-Lisbonne : les différents avions, les tarifs, les statuts des vols, etc. Pour que vous puissiez y accéder, votre navigateur (que l’on appelle le client) doit recevoir ces informations de quelqu’un.
Ce “quelqu’un”, c’est le serveur. L’application doit donc communiquer avec le serveur.
Cela ressemble à ceci :
- Client : “Salut serveur, est-ce que je pourrais avoir un avion pour Lisbonne le 10 décembre ?” 🤔
- Serveur : “Voilà, voici tous les transports disponibles vers Lisbonne le 10 décembre !” 🎉
Ou alors, si le serveur ne parvient pas à trouver les données, il pourrait répondre comme ceci :
- Serveur : “Désolé, en fait il n’y a pas de vols disponibles le 10 décembre.” 🙁
C’est ce qu’on appelle la communication entre le client et le serveur : le client formule une requête (ou une demande) pour obtenir une information, et le serveur envoie une réponse contenant les données demandées, si cela est possible.
En matière de web, un service web et une API sont tous les deux des moyens de communication. Un service web standard facilite simplement la communication entre deux machines via un réseau. Une API, quant à elle, facilite l’interaction entre deux applications différentes afin qu’elles puissent communiquer entre elles. Elle agit comme un intermédiaire. Le client demande à l’API une information, qui va chercher cette information dans la base de données avant de la renvoyer au client.
Les API permettent la communication entre de nombreux composants différents de votre application, mais également entre les composants de votre application et d’autres développeurs. Elles agissent ainsi comme un intermédiaire qui transmet des messages à travers un système de requêtes et de réponses.
Revenons à notre exemple avec Air France. ✈️
Imaginons que nous créons une application de comparaison de vols que nous appelons VolScanner. Cette application ne peut pas accéder directement aux informations d’Air France ou d’autres compagnies aériennes. En effet, elle n’a pas accès à leurs bases de données… Mais si Air France dispose d’une API à laquelle nous pouvons demander des informations et qui partage certaines données de la base de données avec d’autres applications, alors VolScanner peut demander des informations à l’API d’Air France. L’API lui renvoie alors les données que VolScanner peut utiliser pour afficher les résultats de comparaison !
Ainsi, VolScanner peut comparer les prix entre les différentes compagnies qui proposent un vol pour Lisbonne le 10 décembre. À vous les délicieuses pasteis de nata ! ✨
Les API peuvent permettre la communication :
- d’un logiciel à un logiciel ;
- d’un client à un serveur ;
- ou d’un logiciel à des développeurs.
Je suis certain(e) que vous avez déjà vu un exemple d’utilisation d’une API pour communiquer entre logiciels et développeurs : sur certains sites, vous pouvez utiliser votre compte Google ou Facebook pour vous identifier, sans avoir à créer un identifiant et un mot de passe.
C’est possible grâce aux API que Google et Facebook ont construites, et que d’autres développeurs peuvent utiliser sur leurs propres sites Internet pour gérer l’inscription et la connexion des utilisateurs à leur place.
Et concrètement, comment cela fonctionne-t-il ? 🤔
Les API créent des méthodes standardisées et réutilisables qui permettent aux développeurs d’accéder à des données spécifiques lors de la construction d’applications.
Prenons un exemple. Lorsque vous sortez manger au restaurant, le menu propose déjà un grand choix d’options prédéterminées. Cela simplifie votre choix, car vous savez ce que vous pouvez commander, et vous recevez ainsi plus rapidement votre plat. Cela permet également au chef de mieux comprendre ce que vous souhaitez. Au final, il vous suffit de demander à la serveuse (l’API) un plat du menu, qu’elle transmettra à la cuisine. La cuisine prépare votre plat, puis le remet à la serveuse qui vous le sert. 🙌
Découvrez comment utiliser les API en tant que développeur
En tant que développeur, vous serez certainement amené à utiliser différentes API dans votre vie professionnelle ou pour vos projets personnels. Il existe deux principaux types d’API : les API privées et les API publiques. Voyons de quoi il s’agit ! 🕵🏻♀️
Les API privées
Les API privées garantissent que les personnes extérieures à votre entreprise ou à votre application n’ont pas accès aux données disponibles dans votre base de données. Par exemple, si les développeurs d’OpenClassrooms souhaitaient construire une application interne permettant aux RH de gérer et d’analyser des informations de recrutement, de nombreuses données seraient nécessaires pour les employés. Afin de permettre aux utilisateurs d’interagir avec ces données, les développeurs d’OpenClassrooms pourraient créer une API permettant aux RH d’accéder aux données de recrutement via leur application, sans pour autant donner cet accès aux utilisateurs de la plateforme, comme vous et moi.
Une API peut être utilisée comme un tampon ou une couche intermédiaire entre la base de données et la personne qui souhaite accéder ou manipuler les données. Une requête directe et non contrôlée sur une base de données pourrait causer le chaos ! 🤯
Et si quelqu’un supprimait accidentellement un cours ou modifiait quelque chose qu’il ne devrait pas toucher ? La base de données est la fondation de toutes les données au sein d’une application, il est donc primordial qu’elle ne soit pas facilement accessible ou manipulable par n’importe qui. C’est une question de sécurité ! 🔥
Une API permet d’ajouter un niveau de sécurité supplémentaire pour mieux gérer l’accès et les modifications des données, en attribuant ce qu’on appelle les droits aux personnes qui en ont besoin. Ainsi, nous nous assurons de contrôler les utilisateurs qui auront accès à la base de données.
Ainsi, je suis la seule personne autorisée à modifier mes informations personnelles sur mon profil OpenClassrooms.
Une API privée permet uniquement aux utilisateurs autorisés au sein de votre entreprise ou de votre application d’utiliser l’API qui peut accéder à la base de données.
Les API publiques
Contrairement aux API privées, les API publiques sont utilisables par d’autres personnes, qu’elles soient sur votre application ou non. Elles permettent aux développeurs de collecter des données provenant d’une autre application pour améliorer ou enrichir leurs propres projets sans autorisations strictes. Il existe de nombreuses façons d’utiliser des données provenant d’API tierces (ou externes), en voici quelques exemples :
Imaginons que vous souhaitiez construire un site web répertoriant les conditions météorologiques des stations de ski. Plutôt que de collecter vos propres données météorologiques, vous pouvez utiliser une API de météo pour obtenir les informations météorologiques ! 🌤
Si vous êtes auteur-compositeur-interprète et que vous souhaitez créer un site web permettant à vos fans d’écouter votre musique, au lieu de développer votre propre lecteur de musique en streaming, vous pouvez utiliser l’API de Spotify pour permettre à vos fans d’écouter votre musique directement sur votre site web ! 🎵
Vous voulez créer une page de fans pour votre série télévisée préférée (Kaamelot, bien sûr) en regroupant tous les comptes Instagram des différents acteurs sur un seul site web – devinez quoi, il existe une API Instagram pour vous aider à le faire ! 🌅
Il existe également des API à mi-chemin entre une API publique et une API privée. Cela se produit lorsque différentes requêtes de l’API sont possibles uniquement en fonction de votre niveau d’accès. 🔐 Nous aborderons ce sujet plus en détail lorsque nous parlerons de l’authentification. 😉
Il existe des milliers d’API publiques que les développeurs peuvent utiliser de différentes manières pour améliorer leurs projets. Vous trouverez ici une liste de ces API disponibles publiquement que vous pouvez utiliser !
En résumé
Les API permettent de communiquer des données.
Elles permettent la communication entre les différents composants de votre application et entre votre application et d’autres développeurs, en utilisant des requêtes et des réponses.
Elles offrent un moyen d’accéder aux données de manière réutilisable et standardisée.
Les développeurs peuvent utiliser des API publiques et privées.
Les API publiques sont utilisables par tous, sans restriction.
Les API privées sont utilisables uniquement par les personnes ayant accès et autorisées.
Alors, pourquoi utiliser une API REST en particulier plutôt qu’une simple API ? REST possède de nombreux avantages. Voyons cela dans le chapitre suivant !
Source de l’article original : Vimeo.com