Initiez-vous au fonctionnement des API

#DĂ©couvrez ce qu’est une API

C’est dimanche. Vous vous rĂ©veillez tard, et mĂȘme si vous savez que vous devriez vous lever, vous voulez juste rester enroulĂ© bien au chaud dans votre couette et vous vous dites qu’en ce mois de fĂ©vrier, partir profiter de la douceur du Portugal ne serait pas une mauvaise idĂ©e. Alors, vous ouvrez une application de comparateur de vols et voilĂ  ! ✹Vous trouvez plusieurs offres de diffĂ©rentes compagnies aĂ©riennes pour Lisbonne ! Bon, l’avion, ce n’est pas trĂšs Ă©colo et entre nous les horaires ne sont pas top, alors vous tentez le train. Vous ouvrez une application pour rĂ©server un billet de train et pareil ! Vous trouvez plusieurs offres de trains pour Lisbonne en passant par l’Espagne. Et tout ça sans avoir Ă  aller chercher l’information sur le site de chaque compagnie ferroviaire ou aĂ©rienne. Pas mal, non ?

Vous avez l’habitude de voir toutes ces donnĂ©es dĂ©filer sans arrĂȘt sous vos yeux comme par magie, que ce soit sur les rĂ©seaux sociaux ou les applications de comparatifs en tout genre. De votre point de vue, c’est assez simple : les informations arrivent au fur et Ă  mesure sans effort ; sauf qu’en coulisse, c’est autre chose ! En effet, un gros travail est effectuĂ© pour rendre cela possible et pour que cela fonctionne, il nous faut l’un des outils les plus importants : une API

API par ci, API par lĂ , OK OK, mais que signifie API, au juste ? đŸ€”

API est une abbrĂ©viation et signifie Application Programming Interface (ou interface de programmation d’application, en français). Pour faire simple : c’est un moyen de communication entre deux logiciels, que ce soit entre diffĂ©rents composants d’une application ou entre deux applications diffĂ©rentes.

OK OK OK... mais du coup, quel est le lien  entre une API et le fait de scroller par exemple Instagram non stop jusque 2 h du matin, ou comparer des vols pour Lisbonne ? đŸ€”

#Découvrez le fonctionnement des API

Eh bien, pour rĂ©pondre Ă  cette question, vous devez connaĂźtre un peu plus le fonctionnement d’une API. Mais avant, revoyons ensemble les bases d’une communication serveur et client.

Prenons l’exemple d'Air France, une compagne aĂ©rienne française. Quelque part dans le monde, les serveurs d'Air France ont accĂšs Ă  toutes les donnĂ©es que vous voulez voir pour un trajet Paris-Lisbonne : les diffĂ©rents avions, les tarifs, les statuts des vols, etc. Pour que vous puissiez y avoir accĂšs, 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 avoir une conversation avec le serveur. 

Une conversation typique entre client et serveur : Ă  gauche l'ordinateur client envoie une requĂȘte au serveur Ă  droite. Puis le serveur Ă  droite retourne une rĂ©ponse au client.
Une conversation typique entre client et serveur

Cela ressemble à ça :

  • Client : « Salut serveur, est-ce que  je pourrais avoir un avion pour Lisbonne le 10 dĂ©cembre ?» đŸ€”

  • Serveur : « VoilĂ , 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 client et 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. 

Et du coup, l’API, elle se place oĂč, dans ce schĂ©ma ? Et le rapport avec Air France ?

En web, un service web et une API sont tous les deux des moyens de communication. Un service web standard facilite seulement la communication entre deux machines via un rĂ©seau. Une API facilite l’interaction entre deux applications diffĂ©rentes afin qu’elles puissent communiquer entre elles : elle sert d’intermĂ©diaire. Le client va demander Ă  l’API une information, celle-ci va aller chercher cette information dans la base de donnĂ©es puis la renvoyer au client dans un second temps.

Une conversation entre le client, l'API et la base de données : l'API au milieu récupÚre des données de la BDD à droite, puis la BDD retourne des données à l'API.
Une conversation entre le client, l'API et la base de données

Les API permettent la communication entre de nombreux composants diffĂ©rents de votre application, mais aussi entre des 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. 

Reprenons notre exemple avec Air France. ✈

On crĂ©e une application de comparateur de vols que l’on va l’appeler VolScanner. Celle-ci ne peut pas accĂ©der directement aux informations d'Air France ou de toute autre compagnie aĂ©rienne. En effet, l’application n’a pas accĂšs Ă  leurs base de donnĂ©es... Mais si Air France a une API Ă  qui on peut 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 des donnĂ©es que VolScanner peut partager !

Ainsi, VolScanner peut comparer les prix entre les diffĂ©rentes compagnies qui ont mis en place un vol le 10 dĂ©cembre pour Lisbonne. À vous les dĂ©licieuses pasteis de nata ! ✹

Les API peuvent communiquer :

  • d’un logiciel Ă  un logiciel ;

  • d’un client Ă  un serveur ;

  • ou d’un logiciel Ă  des dĂ©veloppeurs.

Je suis certaine 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 parce que Google et Facebook ont construit des API que d’autres dĂ©veloppeurs peuvent utiliser dans leurs propres sites Internet pour s’occuper de l’inscription et de la connexion des utilisateurs Ă  leur place.

Screenshot d'une interface proposant une identification par un service externe de type connexion avec Facebook, Google ou adresse e-mail.
Les API rendent possibles les identifications par un service externe !

Et du coup, comment c’est possible techniquement ? đŸ€”

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. Quand vous sortez manger, le menu du restaurant offre une grande quantitĂ© d’options dĂ©jĂ  prĂ©dĂ©terminĂ©es. Cela vous simplifie la tĂąche car vous savez ce que vous pouvez commander, et donc obtenir plus rapidement votre plat. Cela donne Ă©galement une meilleure comprĂ©hension de ce que vous voulez pour le chef. Au final, vous n’avez qu’à demander Ă  la serveuse (API) un plat du menu qu’elle transmettra en cuisine, la cuisine prĂ©pare votre plat, le remet Ă  la serveuse qui vous le ramĂšne.  🙌

#Observez comment utiliser les API en tant que développeur

En tant que dĂ©veloppeur, vous serez certainement amenĂ© Ă  utiliser diverses API dans votre vie professionnelle ou pour vos projets personnels. Il existe deux types principaux : les API privĂ©es et les API publiques. Voyons ensemble de quoi il s'agit ! đŸ•”đŸ»â€â™€ïž

#Les API privées

Les API privĂ©es garantissent que les personnes en dehors de votre entreprise ou de votre application n’ont pas accĂšs aux donnĂ©es disponibles de votre base de donnĂ©es. Par exemple, si les dĂ©veloppeurs d'OpenClassrooms voulaient construire une application interne pour que les RH puissent gĂ©rer et analyser des informations de recrutement, il y aurait de nombreuses donnĂ©es que les salariĂ©s voudraient voir, crĂ©er, et modifier. Pour que les utilisateurs puissent interagir avec les donnĂ©es, les dĂ©veloppeurs d’OpenClassrooms pourraient crĂ©er une API pour que les RH puissent accĂ©der aux donnĂ©es de recrutement Ă  travers leur application, sans pour autant donner ces 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 veut accĂ©der ou manipuler les donnĂ©es. Une requĂȘte directe et non contrĂŽlĂ©e sur une base de donnĂ©es pourrait engendrer le chaos ! đŸ€Ż 

Et si quelqu’un supprimait accidentellement un cours ou modifiait quelque chose qu’il n’aurait pas dĂ» toucher ? La base de donnĂ©es est la fondation de toutes les donnĂ©es au sein d’une application, donc il ne faut surtout pas qu’elle soit facilement accessible ou manipulable par n‘importe qui. Question de sĂ©curitĂ© ! đŸ”„

Une API permet 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 des droits aux personnes qui en ont besoin. Ainsi, on s’assure de contrĂŽler les utilisateurs qui auront ou non accĂšs Ă  la base de donnĂ©es.

Ainsi, moi seule peux 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 que l’on appelle publiques sont utilisables par d’autres personnes, qu’elles soient sur votre application ou non. Elles permettent aux dĂ©veloppeurs de rĂ©colter les donnĂ©es d’une autre application pour amĂ©liorer ou enrichir leurs propres projets sans autorisation stricte. Il existe de nombreuses maniĂšres d’utiliser des donnĂ©es provenant d’API tierces (ou externes), mais en voici quelques-unes :

  1. Imaginons que vous vouliez construire un site web qui rĂ©pertorie les conditions mĂ©tĂ©o 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 et y trouver vos donnĂ©es ! đŸŒ€

  2. Si vous ĂȘtes auteur-compositeur-interprĂšte et que vous voulez crĂ©er un site web pour que vos fans puissent Ă©couter votre musique, au lieu de construire votre propre lecteur de musique en streaming, vous pouvez utiliser l’API de Spotify et Ă©couter votre musique directement sur votre site web ! đŸŽ”

  3. Vous voulez crĂ©er une page de fans pour votre sĂ©rie tĂ©lĂ© favorite (Kaamelot, bien sĂ»r), en rĂ©unissant 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 certaines API Ă  mi-chemin entre une API publique et privĂ©e. Cela peut se produire quand diffĂ©rentes requĂȘtes de l’API sont possibles uniquement en fonction du niveau d’accĂšs dont vous disposez. 🔐 Nous y reviendrons plus tard lorsque nous traiterons de l’authentification. 😉

Il existe des milliers d’API publiques que les dĂ©veloppeurs peuvent utiliser de diffĂ©rentes façons 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 diffĂ©rents composants de votre application et entre votre application et d’autres dĂ©veloppeurs, par l’utilisation de requĂȘtes et de rĂ©ponses.

  • Elles donnent un moyen d’accĂšs aux donnĂ©es de façon 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 seulement par ceux qui ont un accĂšs et y sont autorisĂ©s.

Pourquoi utiliser une API REST en particulier et pas une simple API ? REST possĂšde de nombreux avantages. Regardons ensemble dans le chapitre suivant !

Et si vous obteniez un diplĂŽme OpenClassrooms ?
  • Formations jusqu’à 100 % financĂ©es
  • Date de dĂ©but flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous