Definition

API

Qu'est-ce qu'une API ?

Une interface de programmation d'application (API) est un code qui permet à deux logiciels de communiquer. Une API définit la manière dont un développeur doit demander des services à un système d'exploitation (OS) ou à une autre application, et exposer des données dans différents contextes et à travers de multiples canaux.

Toute donnée peut être partagée avec une interface de programmation d'application. Les API sont mises en œuvre par des appels de fonction composés de verbes et de noms ; la syntaxe requise est décrite dans la documentation de l'application appelée. Par exemple, sur un site web immobilier, une API peut publier les biens immobiliers disponibles par zone géographique, tandis qu'une deuxième API fournit les taux d'intérêt actuels et qu'une troisième propose une calculatrice de prêt hypothécaire.

Dans les premiers temps du Web 2.0, le concept d'intégration de données et d'applications provenant de différentes sources était appelé "mashup". Le web, les logiciels conçus pour échanger des données via Internet et le cloud ont tous contribué à accroître l'intérêt pour les API et les services.

Comment fonctionnent les API ?

Les API sont constituées de deux éléments liés :

  • une spécification qui décrit comment les informations sont échangées entre les programmes sous la forme d'une demande de traitement et d'un retour des données nécessaires ; et
  • une interface logicielle écrite selon cette spécification et publiée d'une manière ou d'une autre pour être utilisée.

Le logiciel qui souhaite accéder aux fonctionnalités et aux capacités de l'API est appelé à "l'appeler", et le logiciel qui crée l'API est appelé à la publier.

Les API autorisent et accordent l'accès aux données demandées par les utilisateurs et les autres applications. L'accès à un service ou à une partie d'une fonctionnalité est authentifié à l'aide de rôles prédéfinis qui régissent qui ou quel service peut accéder à des actions et à des données spécifiques. Les API fournissent également une piste d'audit qui détaille qui et quoi a eu accès au système et quand cela s'est produit.

Les applications qui appellent les API sont traditionnellement écrites dans des langages de programmation spécifiques. Les API Web peuvent être appelées par n'importe quel langage de programmation, mais les pages Web créées en langage de balisage hypertexte (le fameux HTML) ou les outils de génération d'applications peuvent également y accéder.

Les architectures les plus courantes pour les API sont Representational State Transfer (REST) et Simple Object Access Protocol (SOAP), qui définit un protocole de communication standard pour un échange de messages basé sur Extensible Markup Language ou XML. SOAP nécessite moins de code d'infrastructure de bas niveau que REST. Cependant, les API REST sont plus faciles à adapter et à redéployer, et plus simples à mettre en œuvre et à intégrer dans les sites web et les services. Les API REST sont le plus souvent utilisées aujourd'hui, en particulier pour les interactions web.

Diagramme montrant comment les applications utilisent une API pour interagir avec une base de données
Les applications utilisent souvent une API pour accéder aux données.

Pourquoi les API sont importantes pour les entreprises ?

Les API ont amélioré la qualité et la fourniture de logiciels et de services. Les logiciels personnalisés qui ont été développés dans un but spécifique sont souvent écrits pour faire référence à des API qui fournissent des fonctionnalités utiles dans une variété de contextes. Cela permet de réduire le temps de développement, le coût et le risque d'erreurs.

Le nombre croissant de services web que les fournisseurs de cloud exposent par le biais d'API a également encouragé la création d'applications spécifiques, d'efforts dans le domaine de l'internet des objets et d'applications destinées à prendre en charge les appareils mobiles et les utilisateurs.

Les API ajoutent une couche numérique par laquelle les données et les actifs d'une entreprise sont présentés avec la gouvernance et la sécurité requises. Cette approche améliore les interactions avec les clients, les employés et les partenaires. L'élargissement des fonctionnalités et de l'étendue des services augmente la valeur offerte aux utilisateurs et améliore l'expérience client. Par exemple, le site web précédent anticipe les besoins d'un client en matière de recherche immobilière.

Les API créent également de nouvelles possibilités de monétisation pour les entreprises, telles que la production de données avec des forfaits et des plans personnalisés pour les partenaires commerciaux.

Quels sont les avantages de l'utilisation des API ?

Les API sont un ensemble de règles. Elles normalisent la manière dont les développeurs écrivent le code des applications, améliorant ainsi les processus internes de développement de logiciels d'une organisation.

L'utilisation des mêmes règles et formats permet de rationaliser le code et de le rendre plus transparent. La normalisation facilite également la collaboration entre les développeurs qui créent des composants logiciels dans le but de les intégrer aux API. Cela facilite le développement des fonctionnalités et réduit les délais de mise sur le marché.

Les API publiques et celles qui sont partagées avec des partenaires permettent à une organisation d'effectuer les opérations suivantes :

  • contrôler et gérer en toute sécurité la manière dont les utilisateurs et les systèmes accèdent aux données et aux fonctionnalités des services ;
  • permettre à des tiers d'utiliser ses données, même de manière limitée, ce qui augmente la visibilité de la marque de l'entreprise ;
  • développer sa base de données clients et augmenter son taux de conversion en alignant ses services sur d'autres marques de confiance ; et
  • monétiser ses API afin qu'elles deviennent une source de revenus. Il s'agit d'une tactique courante pour les passerelles de paiement en ligne. Par exemple, les entreprises qui utilisent les API de PayPal sont prêtes à payer pour utiliser un système de paiement fiable.

Défis liés à l'utilisation des API

Les API présentent des difficultés et des limites, notamment les suivantes :

  • Le développement d'API peut être complexe et coûteux à intégrer aux systèmes et aux données qu'ils représentent. Certains types de fonctionnalités peuvent être mieux pris en charge par une approche telle que l'automatisation des processus robotiques.
  • Parce qu'elles sont régies par la normalisation, les API sont également vulnérables aux cyberattaques liées à l'exposition des données, à l'authentification des utilisateurs, à l'autorisation au niveau de l'objet et de la fonction, à l'assignation de masse et aux attaques par injection.
  • Les API sont fréquemment mises à jour, ce qui complique la mise à jour de la documentation. Une bonne gestion du cycle de vie des API et la suppression des anciennes API peuvent contribuer à atténuer ce problème.
  • Les API doivent être testées pour s'assurer qu'elles fonctionnent comme il se doit. La meilleure approche consiste à codifier les pratiques de test.
Liste des menaces pour la sécurité des API
Les API présentent de nombreuses vulnérabilités dont les attaquants peuvent tirer parti.

Types d'API

Il existe quatre types d'API : privée, publique, partenaire et composite.

  • Les API privées, ou API internes, sont publiées en interne pour être utilisées par les développeurs de l'entreprise afin d'améliorer ses propres produits et services. Les API privées ne sont pas exposées à des tiers.
  • Les API publiques, ou API ouvertes, sont publiées publiquement pour que tout le monde puisse les utiliser. Ces API ne font l'objet d'aucune restriction.
  • Les API partenaires ne peuvent être utilisées que par des parties spécifiques avec lesquelles une entreprise accepte de partager des données. Ces API sont utilisées dans le cadre de relations commerciales, souvent pour intégrer des logiciels entre les entreprises partenaires.
  • Les API composites combinent plusieurs API pour traiter des tâches liées ou interdépendantes. Elles améliorent souvent la vitesse et les performances par rapport aux API individuelles.

Les API sont également classées en trois catégories : locales, web, distantes et programmes.

  • Les API locales offrent des services de système d'exploitation ou d'intergiciel aux applications. Parmi les exemples d'API locales, on peut citer les API .NET de Microsoft, l'API de téléphonie pour les applications vocales et les API d'accès aux bases de données.
  • Les API Web sont conçues pour représenter des ressources telles que des pages HTML et sont accessibles au moyen d'un simple protocole de transfert hypertexte, ou HTTP. Toute URL web active une API web. Les API Web sont souvent appelées API RESTful car l'éditeur d'interfaces REST ne sauvegarde aucune donnée en interne entre les requêtes. Ainsi, les demandes de plusieurs utilisateurs peuvent être mélangées comme elles le seraient sur l'internet.
  • Les API distantes interagissent par le biais d'un réseau de communication pour manipuler des ressources en dehors de l'ordinateur qui fait la demande. Il s'agit d'une catégorie plus large qui comprend, sans s'y limiter, les API web. Les API distantes n'ont pas besoin d'être conçues sur la base des normes web, bien que nombre d'entre elles le soient. L'API Java Database Connectivity et l'API Java Remote Method Invocation sont deux exemples d'API distantes.
  • Les API de programme sont basées sur la technologie d'appel de procédure à distance (RPC) qui fait qu'un composant de programme distant semble être local pour le reste du logiciel. Les API d'architecture orientée services, telles que la série WS de Microsoft, sont des API de programme.

L'importance de la conception des API

Une bonne conception de l'API est essentielle pour une utilisation réussie de l'API. Les architectes logiciels passent un temps considérable à examiner toutes les applications possibles d'une API et la manière la plus logique de l'utiliser.

Les structures de données et les valeurs des paramètres sont particulièrement importantes car elles doivent correspondre entre l'appelant d'une API et son éditeur.

Une sécurité solide est également un aspect important de la conception des API. L'exploitation d'API mal configurées est une pratique courante pour les cyberattaquants. Les API sont une passerelle qui présente les systèmes et les données d'une organisation aux utilisateurs internes et externes. Toute compromission peut créer de vastes et graves problèmes de sécurité.

Quels sont les exemples d'API ?

Les systèmes d'exploitation et les outils intergiciels exposent leurs caractéristiques par le biais de collections d'API généralement appelées "boîtes à outils". Deux ensembles différents d'outils qui prennent en charge les mêmes spécifications d'API sont interchangeables pour les programmeurs et constituent la base des revendications de compatibilité et d'interopérabilité. Les spécifications de l'API .NET de Microsoft sont à la base d'un ensemble d'intergiciels open source équivalent à Linux, désormais pris en charge par Microsoft, par exemple.

De nombreux produits et outils logiciels proposent des fonctionnalités via des API, qu'il s'agisse d'outils DevOps tels que Docker, Jenkins et GitLab ou de plateformes d'entreprise telles que Microsoft SharePoint. Les médias sociaux, en particulier, tirent parti des API ouvertes pour faciliter l'utilisation de fonctionnalités tierces, telles que la possibilité de créer des flux d'informations et de partager des photos.

L'internet est le principal moteur des API. Des entreprises telles que Facebook, Google et Yahoo publient des API afin d'encourager les développeurs tiers à exploiter leurs capacités. Ces API ont tout fourni, des nouvelles fonctionnalités internet qui permettent de naviguer sur les sites d'autres services aux applications pour appareils mobiles qui offrent un accès facile aux ressources des applications web. Les nouvelles fonctionnalités, telles que la fourniture de contenu, la réalité augmentée et les nouvelles applications de la technologie portable, sont créées en grande partie grâce à ces API.

Liste des cas d'utilisation de l'API dans différents secteurs d'activité
Les API créent de la valeur dans presque tous les secteurs où les entreprises, les partenaires et les fournisseurs échangent des données.

Tendances de l'API

L'omniprésence de l'internet, l'utilisation accrue du cloud et le passage d'applications monolithiques à des microservices ont tous contribué à l'augmentation de l'utilisation des API. Les tendances en matière d'API sont les suivantes :

REST et le web. Les appels à l'API web peuvent provenir de n'importe quel langage de programmation, mais les pages web créées en HTML ou les outils de génération d'applications peuvent également les effectuer. Le rôle croissant de l'internet et de l'informatique dématérialisée dans la vie quotidienne et les activités commerciales a élargi l'utilisation des API et des outils de programmation simples, voire sans programmation du tout, pour l'accès aux API.

REST et SOAP permettent tous deux d'invoquer des services en cloud, de s'y connecter, de les gérer et d'interagir avec eux. REST est de plus en plus privilégié pour les API web car il utilise moins de bande passante et offre plus d'options pour les langages de programmation, tels que JavaScript et Python. De grands sites web, tels qu'Amazon, Google, LinkedIn et Twitter, utilisent des API RESTful.

Les API et le cloud. Le cloud introduit de nouvelles capacités pour diviser les logiciels en composants réutilisables, connecter les composants aux demandes et faire évoluer le nombre de copies de logiciels en fonction de l'évolution de la demande.

Ces capacités de l'informatique dématérialisée ont fait évoluer l'orientation des API, qui sont passées de modèles simples basés sur la programmation RPC à des modèles RESTful centrés sur le web, et même à ce que l'on appelle la programmation fonctionnelle ou des modèles lambda de services qui peuvent être instantanément mis à l'échelle en fonction des besoins dans l'informatique dématérialisée.

Les API en tant que services. La tendance à considérer les API comme des ressources générales a changé. De nombreuses applications et de nombreux utilisateurs utilisent les API comme un outil général, mais elles sont également considérées comme des services et nécessitent normalement un développement et un déploiement plus contrôlés.

Les SOA et les microservices sont des exemples d'API de services. Les services sont la tendance la plus chaude dans les API, au point qu'il est possible que toutes les API soient considérées à l'avenir comme représentant des services.

L'intelligence artificielle dans les API. L'IA et l'apprentissage automatique sont de plus en plus utilisés pour générer automatiquement de la documentation et surveiller les tendances d'utilisation des API.

Publication et gestion des API

L'entreprise qui publie l'API contrôle tous les aspects de sa conception et de son utilisation, y compris la sécurité, la fiabilité et la tarification de l'utilisation. Elle contrôle également l'ajout de fonctions, qu'elles soient développées par l'éditeur ou par des tiers. Cela signifie que l'entreprise doit faire respecter les performances de l'API dans le cadre de ses conditions de service, comme elle le ferait pour n'importe quelle application ou n'importe quel service.

Voici les principaux aspects de la publication et de la gestion des API :

Tests des API. Comme tout logiciel, les API doivent être testées. Cela permet de valider l'API publiée par rapport aux spécifications que les utilisateurs utilisent pour formuler leurs demandes. Les tests d'API permettent également de s'assurer que

  • les points de terminaison des applications et les fonctions de partage des données fonctionnent comme prévu ;
  • les flux de données des partenaires envoient les données attendues, de la manière, au moment et à l'endroit prévus ;
  • les données indésirables n'entrent pas dans une base de données et ne créent pas de problèmes d'application ou de corruption de données ; et
  • une application fonctionne sur toutes les plateformes, qu'il s'agisse d'un ordinateur de bureau, d'un site web ou d'un téléphone portable.

Les tests d'API sont généralement effectués dans le cadre de la gestion du cycle de vie des applications, à la fois pour le logiciel qui publie l'API et pour tous les logiciels qui l'utilisent. Les API doivent également être testées dans leur forme publiée pour s'assurer qu'elles sont accessibles correctement.

Gestion de l'API. La gestion des API fait référence à l'ensemble des activités associées à la publication d'une API en vue de son utilisation. La gestion permet aux utilisateurs de trouver l'API et ses spécifications et d'en réglementer l'accès en fonction des autorisations ou des politiques définies par le propriétaire.

Liste des composants de la plateforme de gestion des API
Les plateformes de gestion des API aident les entreprises à gérer les API à mesure qu'elles en deviennent plus dépendantes.

La gestion des API est devenue courante car les entreprises dépendent de plus en plus de ces API, en adoptent un plus grand nombre et font face aux complexités administratives qu'elles introduisent. Les besoins des entreprises en matière de gestion varient, mais ils englobent généralement des fonctions de base, notamment la sécurité, la gouvernance, l'analyse et le contrôle des versions.

Les API nécessitent une documentation solide, des niveaux de sécurité avancés, des tests complets, des versions régulières et une grande fiabilité. Pour répondre à ces exigences, les entreprises utilisent des logiciels de gestion des API, soit sous la forme d'une plateforme combinée, soit avec des outils individuels. Ces outils comportent généralement plusieurs composants de base : un portail pour les développeurs, la gestion du cycle de vie, un gestionnaire de politiques, des analyses et une passerelle API.

Points de terminaison de l'API et sécurité. Les points de terminaison de l'API sont les points où le client et le serveur communiquent et où l'API reçoit des demandes de ressources. Il s'agit généralement d'une URL exposée par le serveur qui permet à d'autres systèmes de se connecter aux points de terminaison. Ils servent de points d'entrée dans le réseau de l'entreprise. Les points de terminaison sont l'endroit où le code d'un développeur interagit avec le code et les données d'une organisation.

Les points de terminaison de l'API sont des cibles attrayantes pour les attaquants et doivent être protégés. Voici quelques mesures de sécurité :

  • Utilisez la limitation de débit pour décourager les robots et les menaces de déni de service distribué.
  • Valider les entrées pour s'assurer que les données sont correctes et prévenir les attaques par injection.
  • Stocker les mots de passe sous forme de valeurs hachées asymétriques.
Cette définition a été mise à jour en février 2016

Pour approfondir sur API

Close