Catégorie

Big Data

Catégorie

Qu’est ce qu’une API

⌚: 4 minutes

Vous avez sans doute déjà vu le terme « API » dans des échanges de mails. Les mises à jour des systèmes d’exploitation, des navigateurs web et des applications annoncent souvent de nouvelles API pour les développeurs. Mais qu’est-ce qu’une API ?

Interface de programmation d’applications

Le terme API est un acronyme qui signifie « Application Programming Interface ».

Pensez à une API comme un menu de restaurant. Le menu fournit une liste de plats que vous pouvez commander, ainsi qu’une description de chaque plat. Lorsque vous spécifiez les éléments du menu que vous souhaitez, la cuisine du restaurant fait le travail et vous fournit le plats en question. Vous ne savez pas exactement comment le restaurant prépare ces plats, et vous n’avez pas vraiment besoin de le savoir.

De même, une API énumère un ensemble d’opérations que les développeurs peuvent utiliser, ainsi qu’une description de ce qu’ils font. Le développeur n’a pas nécessairement besoin de savoir comment, par exemple, un système d’exploitation se construit . Il doit juste savoir que cette fonction est disponible pour être utilisée dans son application.

Ce n’est pas une métaphore parfaite, car les développeurs peuvent avoir à fournir leurs propres données à l’API pour obtenir les résultats, donc c’est peut-être plus comme un restaurant chic où vous pouvez fournir certains de vos propres ingrédients avec lesquels votre plat sera confectionné, très peu salé, sans fromage ou avec des aubergines en plus par exemple.

Mais c’est globalement ce fonctionnement. Les API permettent aux développeurs de gagner du temps en profitant de la mise en œuvre d’une plate-forme pour faire le travail de fond. Cela permet de réduire la quantité de code que les développeurs doivent créer, et contribue également à créer plus de cohérence entre les applications pour une même plateforme. Les API peuvent contrôler l’accès aux ressources matérielles et logicielles.

Les API simplifient la vie des développeurs

Imaginons que vous vouliez développer une application pour un iPhone. Le système d’exploitation iOS d’Apple fournit un grand nombre d’API – comme tous les autres systèmes d’exploitation – pour vous faciliter la tâche.

Si vous souhaitez intégrer un navigateur web pour afficher une ou plusieurs pages web, par exemple, vous n’avez pas besoin de programmer votre propre navigateur web à partir de zéro juste pour votre application. Vous utilisez l’API WKWebView pour intégrer un objet navigateur WebKit (Safari) dans votre application.

Si vous voulez capturer des photos ou des vidéos à partir de la caméra de l’iPhone, vous n’avez pas besoin d’écrire votre propre interface pour récupérer la photo de l’appareil. Vous utilisez l’API utilisant la caméra, pour intégrer la caméra de l’iPhone dans votre application. Si les API n’existaient pas pour faciliter cette opération, les développeurs d’applications devraient créer leur propre  code pour appeler la caméra et interpréter les entrées du matériel de la caméra. Mais les développeurs de systèmes d’exploitation d’Apple ont fait tout ce travail pour que les développeurs puissent simplement utiliser l’API de la caméra pour intégrer une caméra das l’application qu’ils développent, et ensuite continuer à construire leur application. Et, lorsqu’Apple améliore l’API de la caméra, toutes les applications qui en dépendent profitent automatiquement de cette amélioration.

Cela s’applique à toutes les plates-formes. Par exemple, voulez-vous créer une boîte de dialogue sous Windows ? Il existe une API pour cela. Vous voulez prendre en charge l’authentification des empreintes digitales sur Android ? Il existe une API pour cela aussi, de sorte que vous n’avez pas à tester le capteur d’empreintes digitales de chaque fabricant d’Android. Les développeurs n’ont pas à réinventer la roue encore et encore.

Les API contrôlent l’accès aux ressources

Les API sont également utilisées pour contrôler l’accès aux dispositifs matériels et aux fonctions logicielles qu’une application n’a pas nécessairement la permission d’utiliser. C’est pourquoi les API jouent souvent un rôle important dans la sécurité.

Par exemple, si vous avez déjà visité un site web et vu un message dans votre navigateur indiquant que le site demande à voir votre position précise, ce site tente d’utiliser l’API de géolocalisation de votre navigateur web. Les navigateurs web utilisent ce type d’API pour faciliter l’accès des développeurs web à votre localisation : ils peuvent simplement vous demander « où êtes-vous » et le navigateur fait le difficile travail d’accéder aux réseaux GPS ou Wi-Fi voisins pour trouver votre position physique.

Cependant, les navigateurs exposent également ces informations via une API car il est possible d’en contrôler l’accès. Lorsqu’un site web veut accéder à votre position physique exacte, la seule façon de l’obtenir est de passer par l’API de localisation. Et lorsqu’un site web tente de l’utiliser, vous, l’utilisateur, pouvez choisir d’autoriser ou de refuser cette demande. La seule façon d’accéder à des ressources matérielles comme le capteur GPS est par l’API, de sorte que le navigateur peut contrôler l’accès au matériel et limiter ce que les applications peuvent faire.

Ce même principe est utilisé sur les systèmes d’exploitation mobiles comme iOS et Android, où les applications mobiles ont des autorisations qui peuvent être appliquées en contrôlant l’accès aux API. Par exemple, si un développeur essaie d’accéder à la caméra via l’API de la caméra, vous pouvez refuser la demande de permission et l’application n’a aucun moyen d’accéder à la caméra de votre appareil.

Les systèmes de fichiers qui utilisent des autorisations – comme c’est le cas sous Windows, Mac et Linux – ont ces autorisations appliquées par l’API du système de fichiers. Une application typique n’a pas d’accès direct au disque dur physique brut. L’application doit plutôt accéder aux fichiers par le biais d’une API.

Vous savez tout sur les APIs !