Les API permettent aux applications d'échanger des informations en envoyant et en recevant des appels API.
Cet article s'articule autour des points suivants :
Contenu associé
Qu’est-ce qu’une API ?
Qu'est-ce qu'un appel d'API ?
point de terminaison d'API
API cloud
Qu'est-ce que la sécurité des API ?
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Les interfaces de programmation d'applications (API) permettent aux programmes logiciels de communiquer entre eux en envoyant et en recevant des appels API, ou des demandes d'informations. Ces appels sont engagés par un client d'API et acceptés par un point de terminaison de l'API.
Afin d'échanger des informations entre les API, les développeurs doivent fournir une documentation d'API qui décrit les types d'appels qu'une API peut accepter, les cas d'utilisation qu'elle peut prendre en charge et toute autre condition (par ex. protocoles, schémas et exigences en matière de sécurité) que les tiers sont tenus de respecter.
Les appels d'API permettent aux API de partager des fonctionnalités sans exiger des développeurs qu'ils réécrivent intégralement des fonctions pour chaque application individuelle. Sans elles, les développeurs ne seraient pas en mesure de reproduire facilement des fonctions dans plusieurs applications ou de demander des données à d'autres applications, services et fournisseurs.
Une API est une interface qui permet aux logiciels de partager des données et des fonctions. Cette méthode de communication enrichit les fonctionnalités de la plupart des applications web modernes.
Imaginons par exemple qu'Alice développe une application qui personnalise les listes de lecture de musique classique en fonction de l'humeur des auditeurs. Au lieu de saisir manuellement des milliers de titres pour alimenter ces listes de lecture, elle peut utiliser une API qui se connecte à un référentiel musical externe, ce qui lui fait économiser du temps et de l'argent et simplifie les éventuelles difficultés de développement.
Les cas d'utilisation des API sont pratiquement illimités. Ils connectent les services cloud, interrogent des bases de données, mettent automatiquement à jour les applications mobiles, diffusent du contenu sur de multiples appareils, regroupent les prix des vols et les options de livraison de repas, et bien d'autres choses encore.
Un client d'API, parfois appelé « utilisateur », est le logiciel qui lance un appel d'API.
Avant de pouvoir interagir avec un point de terminaison d'API, un client d'API doit vérifier son identité. Le but est d'empêcher les attaquants de servir des API pour procéder à des attaques par déni de service distribué (DDoS) ou à d'autres actions malveillantes.
En règle générale, l'authentification est réalisée à l'aide de l'une des quatre méthodes suivantes : une chaîne de caractères unique (clé API), une combinaison de nom d'utilisateur et de mot de passe, un jeton OAuth, ou mutual TLS. Le recours à une méthode d'authentification forte est l'un des moyens dont disposent les développeurs pour protéger les API contre les attaques. (Pour en savoir plus sur la sécurité des API.)
Un point de terminaison d'API accepte l'appel d'API et renvoie les informations demandées.
Les clients d'API et les points de terminaison correspondent à des programmes logiciels hébergés sur des serveurs plutôt qu'à des dispositifs matériels autonomes. Les serveurs d'API peuvent héberger plusieurs points de terminaison ; chacun d'entre eux se voit attribuer un Uniform Resource Identifier (URI) grâce auquel un client d'API peut le localiser. Dans la plupart des cas, cet URI est une Uniform Resource Locator (URL), qui pointe vers des sites Internet (par exemple, un site Web).
Un schéma d'API est une métadonnée qui définit les spécifications auxquelles une demande d'API doit répondre pour être considérée comme valide. Ces spécifications peuvent inclure des détails tels que le point de terminaison cible, la méthode HTTP et d'autres exigences établies par les développeurs.
Lorsqu'un appel d'API est envoyé par un client, il doit remplir les conditions décrites dans le schéma. Ce n'est qu'ensuite qu'un point de terminaison d'API peut renvoyer les informations demandées. Pour mettre les choses en perspective, imaginons que Bob organise une fête. Sur l'invitation, il précise que seuls les invités qui apporteront des marguerites jaunes recevront une carte de remerciement après la fête. Si Carole décide toutefois d'apporter des roses rouges à la fête, elle ne recevra pas de carte de remerciement par la suite.
De la même façon, un appel d'API qui ne répond pas aux exigences fixées par le schéma de l'API ne recevra pas de réponse.
À l'instar des API elles-mêmes, les appels d'API varient en fonction des spécifications décrites dans la documentation de l'API. En règle générale, un appel d'API se fait selon trois étapes de base :
Pour une explication plus en détail des appels d'API, consultez la section Qu'est-ce qu'un appel d'API ?
Les API sont prises en charge par plusieurs protocoles différents. Un protocole est une méthode de communication sur un réseau ; il indique à l'API sous quel format présenter les demandes et les réponses. Le type de protocole API utilisé dépend de l'objectif pour lequel l'API a été développée, des cas d'utilisation qu'elle sert et des restrictions qu'elle comporte.
Les deux protocoles API les plus courants sont SOAP (Simple object access protocol) et RPC (Remote procedural call). REST (Representational state transfer) est une architecture logicielle qui est souvent comparée à ces protocoles.
SOAP fournit une méthode normalisée d'envoi et de réception des appels entre API qui utilise des systèmes d'exploitation et des architectures différents. Il est également compatible avec HTTP (Hypertext transfer protocol), FTP (File transfer protocol), SMTP (Simple mail transfer protocol), et d'autres protocoles de la couche application. Il ne peut renvoyer des données aux clients d'API qu'avec le langage XML (extensible markup language).
RPC est l'une des méthodes les plus simples et les plus anciennes qui existe la communication entre API. Elle consiste à lancer un appel de procédure à distance, au cours duquel un client demande une fonction à un serveur distant. La principale différence entre RPC et SOAP/REST réside dans le fait que RPC permet d'effectuer des actions (ou fonctions) spécifiques, tandis que SOAP/REST est utilisé pour récupérer des ressources (ou données).
REST fait référence à une architecture REST, qui dicte en partie la manière dont les appels API sont formatés. Pour simplifier, REST permet à un client de demander des ressources à un serveur, qui renvoie l'information au client dans son état actuel. Les API REST appliquent souvent le protocole HTTP pour formater les demandes et les réponses, mais elles sont également compatibles avec les protocoles FTP, SMTP et autres. Elles peuvent renvoyer des données aux clients d'API dans plusieurs formats différents, notamment XML, JavaScript object notation (JSON) et hypertext markup language (HTML).
Comme tout ce qui est connecté à un réseau, les API sont vulnérables à l'exploitation et aux abus. Les attaques courantes contre l'API sont les suivantes :
Cloudflare API Gateway permet d'atténuer ces attaques par une authentification forte, une analyse des charges utiles à la recherche de données sensibles, la validation des schémas d'API et la détection et la prévention des abus d'API. En savoir plus sur Cloudflare API Gateway.