Qu’est-ce qu'une API ?
Dans votre vie de développeur, vous allez être amené à concevoir des applications complexes. Imaginez que vous devez travailler sur une application permettant de louer simplement un vélo, ou bien de déposer un avis sur un restaurant. Pour que votre application soit vraiment utile, l’utilisateur doit pouvoir géolocaliser le vélo. Vous avez donc besoin d'un service de géolocalisation. Vous avez donc deux options, vous pouvez :
Passer des années avec plusieurs dizaines de développeurs à concevoir un service de carte du monde et de géolocalisation.
Utiliser un service de géolocalisation déjà existant : ArcGIS, Waze, Open Street Map, etc.
Vous voyez où je veux en venir ? Si vous pouvez réutiliser un service déjà existant plutôt que de le développer... profitez-en !
Génial ! Mais du coup, il va falloir que je comprenne comment fonctionne ce service pour l’intégrer à mon application ?
Eh non, grâce à la magie des API ! :)
L’API permet donc un immense gain de temps pour les développeurs et un gain d’argent pour les entreprises. L’API permet l’ouverture d’un produit au monde extérieur !
Prenez l’exemple d’une consultation d’un avis sur un restaurant.
Vous êtes sur une carte affichant les restaurants autour de votre position dans votre navigateur web préféré. Vous cliquez sur votre restaurant fétiche pour consulter par exemple les nouveaux avis de consommateurs pour savoir si ce restaurant est toujours une référence. À ce moment, une fenêtre s’ouvre avec les informations sur le restaurant : adresse, téléphone, avis, menus… Ce service d’affichage des informations est le fruit de l’API.
Quelques exemples d'API
La majorité des logiciels utilisent les API : Facebook, Twitter, Snapchat, Shazam, Netflix, ArcGIS sont des logiciels qui mettent à disposition des API et qui se basent sur les API d'autres services !
Le logiciel de géolocalisation et d’aide à la décision ArcGIS, produit par la société Esri, met à disposition des développeurs plusieurs API pour vos projets informatiques ! Cliquez ici pour consulter la liste des API ArcGIS disponibles ! N’hésitez pas à les tester, elles sont gratuites et peuvent vous simplifier la vie ! ;)
Le service de reconnaissance de musiques de Snapchat repose sur l'API de Shazam.
Le service de prise de rendez-vous de votre salle de sport préférée repose sur l'API de Google Calendar.
Le service d'authentification via Facebook de nombreuses applications utilise l'API de Facebook.
Vous savez maintenant à quoi servent les API. Voyons maintenant comment elles fonctionnent !
Comment fonctionne une API ?
Distinguez client et serveur
Prenez l’exemple de géolocalisation d’une adresse. À travers une application (le client), vous saisissez une adresse puis vous cliquez sur un bouton pour vous localiser. Au moment du clic, un message contenant l’adresse saisie est envoyé à un ordinateur puissant (le serveur) qui va vous renvoyer des coordonnées pour localiser votre adresse dans votre application.
Rôle du client
Le client est la partie visible, la mise en forme de la réponse du serveur. Par exemple, une carte avec des monuments : quand je clique sur un monument, j’obtiens les informations de ce monument.
Le client initie l’échange avec le serveur. Il peut ainsi demander l’exécution d’un service. Par exemple, je veux récupérer des informations à partir de la saisie d’un mot dans un moteur de recherche.
Rôles du serveur
Le serveur est la partie invisible. Par exemple, le serveur peut être un serveur de calcul (itinéraire, distance...), un serveur d’applications, un serveur de bases de données…
Le serveur représente le service rendu. Par exemple, envoyer les informations d’un monument. La mise en forme sera réalisée par le client.
En résumé, le client envoie une requête au serveur qui renvoie une réponse au client en lien avec la requête ! Schématiquement, cela ressemble à :
Comment le client et serveur communiquent-ils ?
Généralement, le client et le serveur sont sur 2 machines différentes, mais il est possible que les 2 soient sur la même machine.
Le client envoie une requête au serveur qui renvoie une réponse au client. La requête peut être un message codé ou non codé, un paramètre d’appel, une configuration de service requis, etc.
En résumé, un fournisseur de service (serveur) met à disposition des développeurs une interface codifiée, qui leur permet d’obtenir des informations à partir de requêtes. Sans entrer dans les détails, la communication est la suivante :
sur un site Web, le client envoie la requête suivante : "envoie-moi ton adresse sous la forme X = rue, Y = ville ou code postal, Z = pays" ;
le serveur répond par un code contenant des coordonnées X,Y de ton adresse à afficher sur ton site.
Le schéma ci-dessous illustre bien cette communication. Le client envoie la requête au serveur à travers une application. Le serveur exécute le service "localisation sur une carte" de l'API. Puis le serveur envoie une réponse contenant les coordonnées X,Y pour que l'application cliente se localise sur l'adresse saisie :
Utilisez les API dans vos projets de développement
Dès lors que vous souhaitez exécuter ou utiliser un service web, il est conseillé d’utiliser une API. Par exemple, si vous développez une application qui a pour but de connaître l’état du trafic routier, il est conseillé d’utiliser l’API de Waze pour éviter de tout redévelopper par vous-même. D'autres entreprises se sont cassé la tête à construire de superbes services accessibles via leur API, utilisez-les !
Pour la grande majorité des API disponibles sur le net, il vous sera demandé de vous inscrire au préalable afin d’obtenir une clé ou token permettant d’accéder aux données, aussi appelés ressources. Cette clé peut être un identifiant/mot de passe, une suite de caractères ou une suite de nombres.
Pour récapituler, une API est une interface d'un logiciel qui permet d'accéder aux données d'autres services. Pour utiliser une API, le client (votre application, par exemple) doit envoyer une requête au serveur (le fournisseur du service, celui qui a construit l'API). Le serveur répondra donc avec les données demandées, si elles sont accessibles et si le client a bien le droit d'y accéder. La communication entre les deux se fait avec un protocole, comme par exemple HTTP.
Maintenant que vous savez à quoi servent les API et comment elles fonctionnent dans l'ensemble, vous allez découvrir dans le prochain chapitre le type d'API le plus utilisée sur le web, l'API REST !