Disclaimer: Cet article à été posté sur lafabriquedunet.fr.
Selon Wikipedia un API est un ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels.
INTRODUCTION
Plus simplement votre expérience Internet s’exécute sur des API. Elles vous aident à comparer les meilleurs prix pour les vols, vous permettent d’intégrer une carte de votre restaurant préféré sur votre blog ou encore de traiter de façon transparente vos paiements par carte de crédit. Mais qu’est-ce qu’une API et pourquoi sont-elles aussi importantes aujourd’hui ? Dans cet article, nous allons vous donner une définition complète et accessible des API et vous montrer leur utilisation dans la vie quotidienne.
# WWW ET SERVEURS DISTANTS
Quand vous pensez au web, vous imaginez peut-être un grand réseau de serveurs connectés. Chaque page sur Internet est stockée quelque part sur un serveur distant. Un serveur distant n’est pas quelque chose de si mystique. C’est juste une partie d’un ordinateur situé à distance qui est optimisé pour traiter des demandes. Pour mettre les choses en perspective, vous pouvez faire tourner un serveur sur votre ordinateur portable capable de servir un site entier sur le web (un serveur local est ce que les ingénieurs utilisent pour développer des sites web avant de les publier). Lorsque vous tapez www.facebook.com dans votre navigateur, une demande est envoyée au serveur distant de Facebook. Une fois que votre navigateur reçoit la réponse, il interprète le code et affiche la page. Pour le navigateur, également appelé client, le serveur de Facebook est une API. Cela signifie que chaque fois que vous visitez une page sur le web, vous interagissez avec l’API de certains serveurs distants.
# MAIS, QU’EST-CE QU'UNE API REELLEMENT?
API est synonyme d’interface de programmation. C’est un concept et un élément intangible. Les API fonctionnent sur un accord d’entrées et de sorties.
- Application : il peut s’agir d’applications que vous utilisez sur votre smartphone ou d’un logiciel que vous utilisez.
- Programmation : les développeurs utilisent des API pour concevoir des logiciels.
- Interface : comment vous interagissez avec l’application.
A POUR « APPLICATION »
Jetons un œil à quelques exemples d’API. « Application » peut se référer à beaucoup de choses. Voici certains d’entre elles dans le contexte de l’API :
- Un morceau de logiciel avec une fonction distincte.
- Le serveur entier, l’application entière, ou juste une petite partie d’une application.
Fondamentalement, n’importe quel logiciel qui peut être distinctement séparé de son environnement, peut être un « A » dans l’API, et aura probablement aussi une sorte d’API. Supposons que vous utilisiez une bibliothèque tierce dans votre code. Une fois intégrée à votre code, cette bibliothèque devient partie intégrante de votre application globale. Étant un morceau de logiciel distinct, la bibliothèque aurait probablement une API qui lui permet d’interagir avec le reste de votre code. Voici un autre exemple : dans Object Oriented Design, le code est organisé en objets. Votre application peut avoir des centaines d’objets définis qui peuvent interagir entre eux. Chaque objet possède une API, un ensemble de méthodes publiques et de propriétés qu’il utilise pour interagir avec d’autres objets de votre application. Un objet peut également avoir une logique interne privée, ce qui signifie qu’il est caché de la portée externe (et non une API).
# Quelques exemples de comment les API fonctionnent dans la vie de tous les jours
# 1er exemple :
Pour utiliser une analogie, nous allons comparer les API à la commande d’une boisson dans un bar. Lorsque vous allez au bar, vous avez un menu avec plusieurs boissons répertoriées. Il y a un accord ici (le concept de l’API), où vous allez commander une boisson et être servi. Le menu tel qu’il vous est présenté est l’interface. Toutes les boissons figurant sur le menu sont ce que le barman peut et a accepté de servir. Lorsque vous demandez un certain verre sur le menu, vous le recevez. Mais si vous demandez quelque chose qui n’est pas sur le menu, comme un vodka martini au lieu d’un gin martini, le barman vous dira non parce que ce n’est pas quelque chose qu’ils ont accepté de servir. Disons que vous voulez le martini livré à votre domicile. Vous appelez un service de livraison et vous le commandez. Lorsque vous le commandez, quelqu’un va transmettre votre commande au barman, le barman fera le martini et quelqu’un le livrera à votre domicile. Ceci est un exemple de service construit sur une « API ».
# 2nd exemple :
Le site web de votre petite entreprise utilise un formulaire pour prendre des rendez-vous avec vos clients. Vous souhaitez donner à vos clients la possibilité de créer automatiquement un événement de calendrier Google avec les détails de ce rendez-vous. L’idée est de faire en sorte que le serveur de votre site web communique directement avec le serveur de Google en lui demandant de créer un événement avec les détails indiqués. Votre serveur recevrait alors la réponse de Google, la traiterait et renverrait des informations pertinentes au navigateur, comme un message de confirmation à l’utilisateur.
C’est quoi une API ? Et pourquoi sont-elles aussi importantes ? Votre expérience Internet s’exécute sur des API. Les API vous aident à comparer les meilleurs prix pour les vols, vous permettent d’intégrer une carte de votre restaurant préféré sur votre blog ou encore de traiter de façon transparente vos paiements par carte de crédit. Mais qu’est-ce qu’une API et pourquoi sont-elles aussi importantes aujourd’hui ? Dans cet article, nous allons vous donner une définition complète et accessible des API et vous montrer leur utilisation dans la vie quotidienne.
# En quoi l’API de Google Agenda est-elle différente de l’API de tous les autres serveurs distants?
En termes techniques, la différence est le format de la demande et de la réponse. Pour rendre toute la page web, votre navigateur attend une réponse en HTML, qui contient du code de présentation, tandis que l’appel de l’API de Google Calendar retournerait simplement les données – probablement dans un format comme JSON. Si le serveur de votre site web effectue la demande d’API, le serveur de votre site web est le client (similaire à votre navigateur étant le client lorsque vous l’utilisez pour accéder à un site web). Du point de vue de vos utilisateurs, les API leur permettent d’effectuer l’action sans quitter votre site. La plupart des sites web modernes utilisent au moins certaines API tierces. De nombreux problèmes ont déjà une solution tierce, que ce soit sous la forme d’une bibliothèque ou d’un service. Il est souvent plus simple et plus fiable d’utiliser une solution existante. Il n’est pas rare que les équipes de développement divisent leur application en plusieurs serveurs qui se parlent entre eux via des API. Les serveurs qui exécutent des fonctions d’assistance pour le serveur d’application principal sont communément appelés microservices. En résumé, lorsqu’une société propose une API à ses clients, cela signifie simplement qu’elle a créé un ensemble d’URL dédiées qui renvoient des réponses de données pures, ce qui signifie que les réponses ne contiendront pas le type de présentation que vous attendez dans un interface utilisateur graphique comme un site web. Pouvez-vous faire ces demandes avec votre navigateur ? La plupart du temps, oui. Étant donné que la transmission HTTP réelle se produit dans le texte, votre navigateur fera toujours de son mieux pour afficher la réponse. Par exemple, vous pouvez accéder directement à l’API de GitHub avec votre navigateur sans avoir besoin d’un accès. Voici la réponse JSON que vous obtenez lorsque vous visitez l’API d’un utilisateur GitHub dans votre navigateur GITHUB API :
{
"login": "petrgazarov",
"id": 5581195,
"node_id": "MDQ6VXNlcjU1ODExOTU=",
"avatar_url": "https://avatars3.githubusercontent.com/u/5581195?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/petrgazarov",
"html_url": "https://github.com/petrgazarov",
"followers_url": "https://api.github.com/users/petrgazarov/followers",
"following_url": "https://api.github.com/users/petrgazarov/following{/other_user}",
"gists_url": "https://api.github.com/users/petrgazarov/gists{/gist_id}",
"starred_url": "https://api.github.com/users/petrgazarov/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/petrgazarov/subscriptions",
"organizations_url": "https://api.github.com/users/petrgazarov/orgs",
"repos_url": "https://api.github.com/users/petrgazarov/repos",
"events_url": "https://api.github.com/users/petrgazarov/events{/privacy}",
"received_events_url": "https://api.github.com/users/petrgazarov/received_events",
"type": "User",
"site_admin": false,
"name": "Petr Gazarov",
"company": "@clauseHQ ",
"blog": "https://twitter.com/PetrGazarov",
"location": "California",
"email": null,
"hireable": null,
"bio": null,
"twitter_username": null,
"public_repos": 31,
"public_gists": 1,
"followers": 119,
"following": 67,
"created_at": "2013-10-01T00:33:23Z",
"updated_at": "2020-06-10T06:59:09Z"
}