Une API (interface de programmation d'application) est un ensemble de règles qui permet à un logiciel de communiquer avec un autre. Considérez-la comme un menu : votre application peut « commander » des données ou des actions, et l'API indique à la cuisine (un service) exactement ce qu'il faut préparer et comment le servir.
Les API normalisent la manière dont les requêtes sont effectuées et les réponses renvoyées, afin que différents systèmes puissent fonctionner ensemble de manière fiable, même s'ils ont été développés par différentes équipes, différentes entreprises ou dans différents langages de programmation.
Concrètement, une API définit les points de terminaison (adresses que vous pouvez appeler), les méthodes que vous pouvez utiliser (comme GET pour récupérer des données ou POST pour envoyer des données), le format de ce que vous envoyez (souvent JSON) et ce à quoi vous devez vous attendre en retour (des données plus un code d'état comme 200 pour « OK » ou 404 pour « Introuvable »). Cette prévisibilité est l'essentiel.
Si vous voulez être précis, vous pouvez utiliser une API sans SDK, mais l'utilisation d'un SDK peut vous faire gagner du temps et réduire les erreurs.
Oui, plusieurs styles, chacun avec ses avantages et ses inconvénients :
En général, oui. Au lieu de tout créer vous-même, les API vous permettent d'intégrer des fonctionnalités telles que les paiements, les cartes, les e-mails, la recherche, l'analyse, l'IA, etc. Cela permet de gagner du temps en ingénierie, d'améliorer la fiabilité (le fournisseur met son service à jour) et permet à votre équipe de se concentrer sur ce qui rend votre produit unique.
Les compromis : vous héritez des limites de débit, des tarifs et des dépendances en matière de disponibilité de votre fournisseur. Si votre produit ne peut pas fonctionner sans cette API, prévoyez une redondance.
Souvent. De nombreuses API nécessitent une authentification afin que le fournisseur sache qui vous êtes et puisse appliquer des autorisations et des limites de débit. Les approches courantes comprennent :
Dans la mesure du possible, ne conservez pas les clés et les jetons dans des référentiels publics et dans le code côté client.
Pas vraiment. Un navigateur Web, curl ou n'importe quel client HTTP fonctionne pour de nombreuses API. Les développeurs utilisent souvent des outils tels que Postman ou des bibliothèques de langage intégrées pour effectuer des requêtes, inspecter les réponses et enregistrer des exemples. Pour les applications de production, vous utiliserez la bibliothèque HTTP de votre langage ou le SDK du fournisseur.
Pratiquement tout ce qui est moderne : les applications mobiles qui extraient les profils, « Se connecter avec Google/Apple », les boutiques en ligne qui traitent les paiements, la synchronisation des appareils domestiques intelligents, les tableaux de bord qui extraient des analyses, et même votre widget météo. Si un logiciel échange des données, il y a probablement une API derrière.