BLOG

Maîtrise de l'architecture API : Principes fondamentaux de l'API

Byron McNaught Miniature
Byron McNaught
Publié le 05 décembre 2022


Les interfaces de programmation application , ou API, sont à la mode.

Acclamation

Bien que les API ne soient pas nouvelles, des phénomènes récents tels que la transformation numérique accélérée pendant la COVID-19, les intégrations logicielles améliorées et les efforts visant à replateformiser les applications héritées pour le cloud ont entraîné une prolifération continue des API , ce qui a un impact sur la gestion, la sécurité et même les choix architecturaux que les organisations font pour réussir dans l'économie numérique moderne.

Les API peuvent, par essence, représenter l’essor des machines. Sauf que, heureusement, les humains ont encore le contrôle sur leur construction, leur gestion et leur sécurité (du moins pour l’instant).

Robot

Fondamentalement, dans le « langage API » (pour ainsi dire), le consommateur envoie généralement des requêtes ou des demandes au producteur , via des interfaces unifiées constituées de diverses normes, schémas et spécifications.

Par exemple, le National Weather Service (le producteur ) contient des données météorologiques quotidiennes. L'application météo sur votre téléphone (le consommateur ) appelle, ou plus précisément, interroge, ce système via l' API REST WeatherKit , puis restitue les données via l'interface utilisateur de l'application météo. Bien qu'il s'agisse d'un exemple simple d'une application populaire utilisée par des millions d' utilisateurs , il convient de noter que la communication de machine à machine représente la part du lion du trafic des expériences numériques modernes et qu'elle est alimentée par des API.

Lion

Les API présentent un certain nombre d’avantages technologiques qui se traduisent par une valeur commerciale :

Avantage technologique Valeur commerciale
Résumer l’implémentation sous-jacente d’une application Web. Les organisations peuvent déployer rapidement des applications mobiles et des architectures basées sur des microservices.
Spécifiez les types afin que les développeurs puissent implémenter des consommateurs d'API via des outils. Les dirigeants peuvent optimiser les processus de développement pour faciliter la mise sur le marché.
Définir la sémantique/le comportement pour modéliser un échange d’informations cohérent et prévisible. Les partenaires peuvent développer et monétiser des intégrations tierces.

Lorsqu’il s’agit de mettre en œuvre des API, un certain nombre de considérations doivent être prises en compte. Plus précisément, en ce qui concerne la modélisation, le contrôle de version et les tests de contrat, qui aident à découpler les dépendances et à garantir l’interopérabilité pendant la conception, la construction et la maintenance.

Considération Description Avantage
Modélisation La sémantique ou le comportement permettant de représenter et de structurer l'échange d'informations. Gestion simplifiée des architectures distribuées.
Versionnage Stratégies de gouvernance pour la publication et la maintenance tout au long du cycle de vie de l'API. Facilité d'utilisation maximale et compatibilité descendante.
Tests de contrat Interaction définie et réponses attendues entre le consommateur et le producteur. Interactions déterministes avec des intégrations commerciales tierces.

Il n’existe pas de bonne ou de mauvaise façon de créer, de gérer et de sécuriser une API. En fait, lorsque les API ont commencé à proliférer, il est devenu nécessaire de normaliser la forme et la structure des API afin de les utiliser à grande échelle. Entrez l'initiative OpenAPI et la spécification OpenAPI qui en résulte (OAS). Swagger était l'implémentation de référence originale de la spécification OpenAPI, et la plupart des outils ont désormais convergé vers l'utilisation d'OpenAPI, qui conserve toujours son swagger (HA !)

En fait, une API peut être construite à l’aide d’une variété de normes, de schémas et de spécifications. Par exemple, une présentation RESTful , un service gRPC et des connexions dans un schéma GraphQL .

Mise en œuvre Aperçu Avantages Quand l'utiliser


REpresentation State Transfer (REST) fournit un modèle architectural léger pour décrire les interfaces unifiées, le plus souvent appliquées en utilisant HTTP comme protocole de transport sous-jacent.

REST est de loin l’implémentation la plus largement déployée des architectures basées sur les API.

Rapport Postman 2022 sur l'état des API

  • REST a des règles très basiques, avec une faible barrière à l'entrée et un modèle de domaine solide, ce qui le rend relativement simple à mettre en œuvre.
  • En tant que système en couches, la complexité des systèmes derrière l'interface REST est abstraite. Par exemple, le consommateur n’est pas conscient qu’il interagit avec un système de base de données derrière un service Web.
  • REST offre un support flexible pour les types de contenu (y compris JSON et YAML).
  • Lorsque la spécification OpenAPI est suffisante pour partager la forme et la structure des API avec les consommateurs.
  • Lorsque la mise en cache doit être déterminée de manière dynamique en fonction des en-têtes HTTP, puisque les demandes du producteur au consommateur sont sans état par défaut.
  • Lors de l'extension d'un modèle de ressource pour une seule API fournie par le producteur ou de l'offre de plusieurs API sur la même URL de base à l'aide de passerelles API.


GraphQL est un langage de requête et de manipulation de données open source pour les API, ainsi qu'un environnement d'exécution permettant de répondre à ces requêtes avec des données existantes (développé par Facebook et désormais intégré à la Linux Foundation).
  • Fournit un langage de requête pour interroger plusieurs sources. 
  • Permet aux clients de demander exactement les champs requis, y compris les champs qui s'étendent sur plusieurs API, réduisant ainsi le temps de chargement initial.
  • Le langage de schéma spécifie les types dans les API individuelles et la manière dont les API se combinent, offrant la possibilité de fournir une version unique pour toutes les API, simplifiant ainsi la gestion des versions.
  • En tant que technologie complémentaire placée sur les systèmes existants pour abstraire la complexité. 
  • Lorsqu'un consommateur d'API nécessite un accès, un filtrage et des interrogations uniformes sur une large gamme de services interconnectés.
  • Avec les appareils mobiles, qui sont limités par des écrans plus petits et la disponibilité du réseau.


gRPC est un framework d'appel de procédure à distance (RPC) moderne, open source et hautes performances, sous la direction de la Linux Foundation.
  • Hautement performant et fiable grâce à l'utilisation de HTTP/2, de tampons de protocole légers, de charges utiles sérialisées et d'implémentations avec état.
  • Prise en charge enfichable pour l'équilibrage de charge, le traçage, la vérification de l'état et l'authentification.
  • Fonction d'interface élevée et interopérabilité des messages avec un support d'outils riche pour toutes les langues. 
  • Pour le dernier kilomètre de l'informatique distribuée pour connecter les appareils, les applications mobiles et les navigateurs aux microservices back-end et pour les applications multiplateformes avec interaction mobile-bureau/IoT.
  • Pour le trafic inter-conteneurs (« Est-Ouest »).
  • Avec des interfaces externes (« Nord-Sud ») qui nécessitent du streaming, et pour des applications de streaming telles que le chat, les finances, les actualités. 

Avec cette introduction aux principes fondamentaux des API, nous explorerons comment créer, gérer et sécuriser l’architecture des API dans les articles suivants avant de tout assembler en replateformant une application héritée pour le cloud.

Protection des applications

Vous voulez aller de l’avant ? Téléchargez le livre électronique aujourd'hui :

Maîtriser l'architecture des API | Livre électronique O'Reilly