Connexion Premium

Dis Next, c’est quoi une API ? Un SDK ?

Avec de vrais morceaux de bœuf dedans

Dis Next, c’est quoi une API ? Un SDK ?

Illustration : Flock

On voit souvent les termes « API » et « SDK ». De quoi s’agit-il ? De briques de développement devenues incontournables aujourd’hui. On vous explique tout ça calmement.

Nous sommes cernés par les API depuis longtemps. Quand vous utilisez la fonction de partage pour envoyer un article à des amis depuis votre téléphone, envoyez un emoji, installez une application, faites un clic droit, copiez puis collez un contenu, Uber affiche un plan, réalisez un paiement en ligne sur un site marchand, programmez des envois d’emails…

Pour résumer à gros traits, une API – Application Programming Interface – est une brique élémentaire à laquelle on fait appel pour initier une opération. Dans le cas d’un site marchand par exemple, que vous souhaitiez payer par carte bancaire directement ou via un prestataire comme Paypal, tout est géré par des API. Les sociétés concernées les fournissent et documentent, afin que les sites puissent les employer « telles quelles ».

Vous avez demandé un bœuf bourguignon ?

L’analogie qui revient le plus souvent pour expliquer le fonctionnement est celle du restaurant. Vous entrez, vous vous asseyez et vous commandez un plat au serveur. Vous ne savez pas ce qui se passe en cuisine, ni comment l’établissement est organisé. Vous n’avez pas besoin de connaître son infrastructure électrique ou sa consommation d’eau, son nombre d’employés ou le type d’ustensiles utilisés, si le bœuf mijote dans une cocotte en fonte ou une casserole en inox. Tout ce que vous savez, c’est que le serveur va vous apporter un bœuf bourguignon, c’est sa mission.

Ici, le serveur représente l’API : il vient vous exposer les possibilités. Il accepte vos demandes si elles cadrent avec ce que le restaurant a à offrir, via un langage spécifique. Et oui : si vous commencez à parler du temps qu’il fait, le serveur va certainement s’en aller, car ces informations ne l’intéressent pas, ou en tout cas ne correspondent pas à sa tâche. Vous indiquez donc un ou plusieurs éléments figurant sur le menu, le serveur s’en va, transmet vos instructions, et vous pouvez déguster un bœuf bourguignon, sans avoir eu besoin de le préparer vous-même. De même, la cuisine ne sait pas qui vous êtes, elle n’a pas besoin de le savoir : elle sait simplement qu’elle doit fournir un bœuf bourguignon.

C’est le principe général de l’API : exposer des capacités, que d’autres peuvent utiliser pour éviter de tout refaire à chaque fois. Elle permet à deux systèmes (au sens large) de collaborer sans que l’un ait besoin de connaître les détails de l’autre. Ce fonctionnement est aujourd’hui omniprésent. Par exemple, si vous ouvrez une application ou un site affichant une carte routière, il est très probable que celle-ci soit fournie par Google ou OpenStreetMap, via une API que l’application doit simplement appeler.

DirectX, un bon exemple

Pour celles et ceux qui ont connu les années 1990, vous vous souvenez peut-être de l’arrivée de DirectX sur Windows. Une petite révolution dans le monde des jeux vidéo, car DirectX est un lot d’API exposant les capacités du matériel de l’ordinateur. Avant, par exemple pour jouer à Doom 2, il fallait que le jeu sache précisément à quel matériel s’adresser, ce qui entraînait parfois des problèmes, notamment sur le son.

Il reste 74% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (7)

votre avatar
il fallait que le jeu sache précisément à quel matériel s’adresser
haaa, la joie de paramétrer la carte son, soundblaster, soundblaster 16, roland, IRQ, DMA, ... C'était le bon temps :phiphi:
Merci pour cet éclairage auquel ne n'avait pas pensé !
votre avatar
Au moins, en ce temps là, on pouvait se tailler un contrat "sur mesure".
Le problème avec les contrats "type" écrits par d'autres, c'est que les pièges se cachent dans les petites lignes que personne ne lit.
votre avatar
Je vais envoyer cet article à certains collègues. Quand je demande de faire des API dans le logiciel, 9 collègues (archis ou dév) sur 10 me disent qu'une API doit être RESTfull et que cela veut dire utiliser http (v1.1) et json. Rien d'autre n'existe pour eux (ou alors ce sont des "bad patterns").
votre avatar
Change de collègue :D
votre avatar
mais envoie quand même l'article à tes collègues actuels avant de partir :embarassed:
votre avatar
Je pense que l'abus de language pour API en tant que interface "web" est courant et que beaucoup oublient en effet qu'une API c'est un terme très vague. Une bibliothèque en C expose une API mais peut de gens appellent ça une API de nos jours. C'est une question de définitions qui peut créer des quiproquo embêtant...
votre avatar
Pour donner une autre métaphore, une API peut être une prise de courant étant a la fois le standard de prise de courant (Française, Européen, etc), et la plus proche prise que vous voyez.
Le SDK est la fiche (la prise mâle) que le standard peut vous fournir pour que vous puissiez brancher votre appareil sur une prise.

D'ailleurs, je se souviens des scandales aux SDK empoisonnés que Facebook fournissait aux développeurs d'appli mobile, SDK qui aspiraient beaucoup d'informations de l'appareil du client sur lequel l'application tournais, dans leur dos.