API, définition et liste de celles qu'il faut connaître
Avant de démarrer tout projet il convient de rechercher les APIs disponibles sur le Web.
L'API est avec le langage de programmation, le principal outil du programmeur, et permet d'éviter de réécrire un code déjà existant.
Une API (Application Programming Interface) est un ensemble
- d'en-têtes de fonctions,
- de classes et leurs membres (pour un langage orienté objet),
qui sont fournis par une bibliothèque logicielle, par un service web, par un système d'exploitation, de sorte qu'ils puissent être utilisés pour programmer un logiciel qui les emploie.
L'implémentation des fonctions et classes, qui peuvent être propres à un matériel, se distingue de l'API qui en est indépendante. Toutefois l'API n'existe que si on dispose d'au moins une implémentation.
La question du copyright
On doit faire la différence entre l'API, et la bibliothèque. Une même API peut avoir différentes implémentation, comme nous le rappelle le procès ayant opposé Oracle à Google, le second ayant réalisé une implémentation propre de l'API Java standard, ce qui a incité Oracle, pour tenter de récupérer des royalties sur Android, de demander que l'on statue en faveur d'un copyright sur les API aussi, ce qui serait fort dommageable. A l'issue du procès il a été déclaré que l'usage des API aux USA tient du fair-use, une exception au coyright. L'Europe pour sa part a statué que les API n'étaient pas sous copyright.
La cour suprême des USA a validé le 4 avril 2021 le principe que l'utilisation des API tenait du "fair use" et ne violait pas le copyright du code en général.
Définir une telle interface ne se limite pas aux bibliothèques, une API peut être aussi être définie pour une application finale de sorte qu'elle puisse communiquer avec d'autres applications.
Caractéristiques des APIs
Dépendance au langage
Une API peut être utilisable dans un unique langage de programmation ou être indépendante des langages. Dans le second cas un langage intermédiaire comme XML peut être utilisé comme format de données pour les requêtes aux fonctions et méthodes.
Licence d'utilisation
Elle est sous licence libre et utilisable sans frais par tout programmeur, ou sous licence propriétaire et accessible uniquement à une communauté restreinte, ce qui le cas par exemple des API de consoles de jeux.
Niveau de langage
On distingue d'une part l'API de haut niveau, en matière de langage de programmation, comme les API graphiques et d'autre part l'ABI (Application Binary Interface), proche du système, comme la Linux Standard Base ou les interfaces de pilotes de matériels.