Qu’est-ce qu’une API ?
API signifie « interface de programmation d’application ». De manière générale, une API est un moyen pour les systèmes ou morceaux de code de communiquer entre eux; en général, pour qu’un système ou morceau de code « demande » à un autre d’exécuter des tâches, de transférer des données ou les deux. L’API d’un système définit ce que les autres systèmes/code peuvent lui demander de faire, et les détails techniques de la communication (tels que les formats de données).
Quels types d’API existent ?
Il existe de nombreuses manières de catégoriser les APIs. Une manière est par le type de systèmes logiciels qui interagissent :
- Les systèmes d’exploitation, comme macOS, iOS, ou Windows, proposent des APIs pour les applications. L’OS contrôle comment et quand d’autres logiciels peuvent interagir avec le matériel, comme les disques, les connexions réseau comme le Wi-Fi et Ethernet, les caméras, les appareils USB, et plus encore. Les applications sur le dispositif doivent utiliser ces APIs pour demander à l’OS d’interagir avec le matériel en leur nom.
- Les navigateurs Web proposent des API à utiliser pour les sites Web. Le navigateur gère toutes les interactions entre le site web et votre dispositif via ces APIs. Par exemple, si un site web veut connaître l’emplacement physique de votre appareil, il doit utiliser l’API du navigateur; le site web ne peut pas §accéder directement§ au GPS de votre appareil. Dans ce scénario, le site web utilise l’API du navigateur pour demander votre permission d’obtenir votre emplacement physique.
- Les sites web et les applications peuvent également proposer des APIs (parfois appelées « webservice ») pour que des applications et services tiers puissent interagir avec elles. Par exemple, certains services de réseaux sociaux ont une API pour publier des posts sur le site. Les développeurs tiers peuvent utiliser cette API pour divers objectifs, tels que publier des posts à des moments programmés, ou en réponse à certains événements.
Une autre manière de catégoriser les APIs est par la mécanique spécifique de la communication. Une « API REST » est un exemple de cette catégorisation.
Pourquoi les APIs sont-elles importantes ?
Les APIs définissent les moyens par lesquels des systèmes logiciels distincts peuvent interagir entre eux. Les APIs des systèmes d’exploitation déterminent ce que les applications peuvent faire, et les APIs des navigateurs déterminent ce que les sites web peuvent faire. De cette manière, les APIs sont essentielles pour créer des expériences fluides entre le matériel, les applications, les sites web et d’autres logiciels.
Mais plus important encore, les créateurs d’APIs peuvent utiliser ces APIs pour accorder un traitement préférentiel en matière d’accès ou de capacité. Par exemple, l’iOS d’Apple possède certaines APIs que seules les applications fabriquées par Apple sont autorisées à utiliser; ainsi, cela exclut la concurrence de certains autres développeurs d’applications. De cette manière, l’API d’une entreprise peut dicter le succès d’une autre entreprise.
Problèmes de sécurité et de confidentialité
Étant donné qu’une API est la frontière entre un système logiciel et le monde extérieur, les API sont cruciales pour la sécurité et la confidentialité. Les bugs de sécurité dans les APIs peuvent donner aux attaquants des capacités qu’ils ne sont pas censés avoir. Lorsqu’un service web propose une API, il doit être extrêmement prudent dans la conception de l’API et la gestion de l’accès, sous peine de compromettre la confidentialité de ses utilisateurs.
Un exemple notable d’échec de confidentialité dû à l’API d’un service web est l’exposition de certaines données de transaction des utilisateurs de Venmo via leur API. N’importe qui sur Internet, même sans un compte Venmo, pouvait utiliser l’API pour voir les données de transaction de tout utilisateur Venmo qui n’avait pas réglé la visibilité de ses données sur « privé » Ces utilisateurs n’avaient probablement pas l’intention que leurs transactions soient si largement visibles. Il est important de noter que personne n’a « piraté » Venmo ou un utilisateur Venmo pour obtenir ces données. Ils ont utilisé des capacités que Venmo offrait volontairement aux développeurs externes. Venmo avait conçu et publié une API qui ne protégeait pas suffisamment la confidentialité de leurs utilisateurs.
Un autre risque potentiel pour la confidentialité réside dans les API des navigateurs Web. Les capacités que les navigateurs offrent aux sites web via les API dépendent du dispositif spécifique, de l’OS et du navigateur. Ces différences peuvent être utilisées pour le fingerprinting, une technique qui permet aux sites web de traquer les utilisateurs.