API, définition et liste de celles qu'il faut connaître

L'API est avec le langage de programmation, le principal outil du programmeur, et il convient avant de démarrer tout projet de rechercher les APIs disponibles sur le Web qui permettront 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.

Accéder au hardware... un SSD de Seagate

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 opposant 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. L'Europe pour sa part a statué contre cela.

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.

Liste d'APIs et bibliothèques d'usage général

Il va de soi que le choix d'une API dépend du langage de programmation (Java a une standard API complète) et de la nature du projet envisagé. Mais certaines API sont communes à tous les projets pour un type d'application donné...
Cette liste contient des bibliothèques ayant une API standard et d'autres qui ne le sont pas. Dans le second cas la bibliothèque doit être incluse avec l'application pour éviter les incompatibilités futures.

OpenGL.
Bibliothèque graphique portable en 2D et 3D.

WebGL.
C'est une interface au code d'OpenGL sur les navigateurs.

SDL.
Bibliothèque graphique pour réaliser des jeux sur ordinateur.

Windows API.
Programmation Windows.

Chromium.
Le code du navigateur Chrome est devenu un substitut au runtime C ou à l'API Windows avec l'avantage sur cette derniere d'être portable. On trouve en effet dans le code l'essentiel des ressources pour réaliser le backend d'une application. Cet article (en anglais) en donne la démonstration: Chromium is the new C runtime. Mais c'est un ensemble très lourd, et il sans doute plus simple d'utiliser Qt ou une liste de bibliothèques spécifiques.

Portable Runtime Project
Comme Chromium mais conçu spécifiquement pour cela.

WebAPI de Mozilla.
Un ensemble d'interfaces pour les mobiles et leurs parties, en cours de développement mais utilisés déjà sur Firefox OS.

Google Map API.
Utilisation de cartes géographiques sur un site web.

Youtube API.
Pour utiliser les vidéos de Youtube.