Types d’API : quelles sont leurs différences ?
QLes API pour Application Programming Interface ou interfaces de programmation d’application sont incontournables dans le développement informatique. La plupart des applications web les plus populaires fonctionnent grâce à ces interfaces logicielles. Elles permettent à des programmes de communiquer entre eux et de partager des fonctionnalités et données. Les développeurs n’ont ainsi pas à reprogrammer des fonctionnalités déjà existantes, car ils peuvent y accéder via l’API. De plus, ils n’ont même pas besoin de comprendre comment marche cette API pour l’implémenter. Ils ont simplement à exploiter son interface. Pourtant, il y a, en réalité, plusieurs types d’API aux cas d’utilisation bien spécifiques. Découvrez ces types d’API et leurs différences dans cet article.
Les types d’API par cas d’utilisation
Les API web
Les API web sont des interfaces de programmation accessibles via le protocole HTTP. Ces API définissent les points de terminaison (endpoint) et les formats de requête et de réponse acceptées. Elles sont principalement utilisées pour communiquer avec le navigateur web, par exemple pour afficher des notifications ou stocker des données temporaires. Ce type d’API est omniprésent sur internet. Ce sont elles qui permettent, notamment, d’intégrer des ressources externes dans un site comme des commentaires Facebook, des post ou encore des vidéos.
Les API web sont souvent confondues avec les services web qui sont également des moyens de communication. La différence est que les services web facilitent les échanges entre deux machines sur un réseau alors que les API servent d’interfaces aux applications. Cependant, le service web est aussi conçu pour avoir une interface dans un format traitable par des machines. Celle-ci est le plus souvent décrite dans une notation XML : le Web Service Description Langage (WSDL).
Les services web intègrent donc des API, mais ils ne contiennent généralement pas toutes les spécifications, et ne peuvent effectuer l’ensemble des tâches qu’une API complète peut accomplir. De plus, le service web a obligatoirement besoin d’un réseau pour fonctionner alors que les API ne sont pas toutes de type web.
Les API système
Une API système est une couche ou interface construite au-dessus d’un système pour gérer notamment :
● les paramètres de connexion ;
● les instructions d’une application utilisateur ou d’un matériel comme un clavier ou un écran tactile ;
● le fonctionnement et les variables internes d’un système.
À l’inverse des API web, les API système sont généralement disponibles, en dehors du réseau, depuis une bibliothèque, un SDK ou un autre service « local ». Cependant, la frontière entre ces 2 types d’API est devenue assez floue, car de nombreuses API web ont remplacé les API système de base.
Les API par type de protocole
Les API SOAP
SOAP pour Simple Object Access Protocol est un protocole d’échange d’information qui se base sur un format de données XML pour déclarer des requêtes et définir les types de réponses attendues. SOAP utilise le modèle d’appel de procédure distante (RPC) dans lequel les méthodes et fonctions reçoivent des paramètres et renvoient les résultats.
Les API publiques et privées utilisent généralement SOAP pour leur interface. Elles sont conçues pour créer, récupérer, mettre à jour et supprimer des enregistrements comme des comptes, des mots de passe ou d’autres objets personnalisés.
Les API SOAP peuvent ensuite être employées avec toutes les langues de programmation. Le destinataire et l’expéditeur d’une requête peuvent même se baser sur des langages différents. Enfin, les API SOAP prennent en charge les web services. Cependant, les règles strictes et les normes rigides de ce protocole incitent les développeurs à privilégier les API REST.
Les API RESTful
Une API RESTful aussi appelée simplement API REST est une interface logicielle conforme aux contraintes du style architectural REST (Representational State Transfer). Cette architecture conditionne le fonctionnement de l’API.
Une API RESTful décompose une transaction en une série de petits modules qui en gèrent, chacun, une sous-partie. Cette modularité offre beaucoup de flexibilité, mais également une certaine complexité pour la conception. C’est pourquoi plusieurs entreprises comme Amazon S3, OpenStack Swift ou Cloud Data Management Interface (CDMI) proposent des modèles d’API Rest prêts à l’emploi pour les développeurs.
Les appels REST sont sans états « stateless », c’est-à-dire que chaque demande doit inclure toutes les informations nécessaires à son traitement et qu’il n’y a pas besoin de session pour sauvegarder des données côté serveur. De ce fait, n’importe quelle requête peut être dirigée vers n’importe quelle instance d’un composant. Les modules stateless peuvent être déployés facilement en cas de défaillance et sont évolutifs. Cela rend les API REST particulièrement efficaces pour les utilisations web et pour le cloud computing.
Les API RPC
RPC pour Remote Procedure Call est un protocole réseau qui donne la possibilité d’appeler des procédures à distance. Basiquement, les API RPC permettent d’exécuter un morceau de code sur un ordinateur ou un serveur distant. Ce type d’API RCP est le plus simple et le plus ancien. Il repose sur deux formats d’encodage : XML (on parle alors de XML-RPC) ou JSON (JSON-RPC).
Les API RPC sont similaires aux API REST, mais plus étroitement couplées avec le système sous-jacent, ce qui rend leurs maintenances, les modifications de leur architecture et leurs évolutions beaucoup plus complexes.
Les types d’API par disponibilités
Les API publiques
Les API publiques, aussi appelées API ouvertes, sont, comme leur nom l’indique, ouvertes aux autres développeurs et aux entreprises tierces avec un minimum de restriction. Elles peuvent nécessiter un enregistrement ou l’utilisation d’une clé API ou OAuth, mais certaines sont totalement transparentes.
Ces API ouvertes facilitent l’accessibilité aux données et services d’une organisation. Par exemple, l’API publique de Google Maps permet de bénéficier de fonctionnalités de suivi et de géolocalisation dans des applications externes, comme celles de covoiturage ou de livraison de repas.
Les API partenaires
.
Les API partenaires sont des API ouvertes uniquement aux associés commerciaux ou stratégiques de leur propriétaire. Elles ne sont donc pas disponibles publiquement, mais requièrent généralement une autorisation spécifique et des mécanismes d’authentification renforcés pour y accéder.
Par exemple, si une société souhaite partager ses données client avec une entreprise externe, elle peut lui fournir une API partenaire destinée exclusivement à se connecter à la base de données client interne. Aucune autre utilisation de l’API ne sera possible.
Les API internes
Les API internes, aussi appelés API privées, sont exposés uniquement aux applications et machines de leur propriétaire. Elles sont donc destinées à être utilisées seulement à l’intérieur d’une même entreprise, pour faciliter, par exemple, la collaboration et optimiser la productivité (en favorisant notamment la réutilisation des services entre les équipes de développement).
Les API composites
Les API composites ou mixtes combinent deux ou plusieurs API de services et de données pour créer une séquence d’opérations liées ou interdépendantes. Elles permettent aux développeurs d’accéder à divers points de terminaison en un seul appel. Les API composites sont donc particulièrement utiles dans les modèles d’architecture de microservices où les développeurs ont souvent besoin d’informations provenant de plusieurs services pour effectuer une unique tâche.
Et vous en tant que développeur ou autres professionnels de l’IT, avec quels types d’API travaillez-vous le plus dans vos projets ? Que pensez-vous de ceux présentés ? N’hésitez pas à nous partager vos expériences sur le forum IT !
Commentaire
Connectez-vous ou créez votre compte pour réagir à l’article.