Une API, ou interface de programme d'application, est un ensemble de règles qui définit comment les applications ou appareils se connectent les uns aux autres et communiquent. Une API REST est une API qui respecte les principes de conception de REST, ou le style architectural de transfert d'état de représentation. Pour cette raison, les API REST sont parfois appelées API RESTful.
Défini pour la première fois en 2000 par l'informaticien, le docteur Roy Fielding dans sa thèse de doctorat, REST fournit un niveau relativement élevé de flexibilité et de liberté pour les développeurs. Cette flexibilité n'est qu'une des raisons pour lesquelles les API REST ont émergé en tant que méthode commune de connexion de composants et d'applications dans une architecture de microservices.
Au niveau le plus basique, une API est un mécanisme permettant à une application ou à un service d'accéder à une autre application ou service. L'application ou le service qui effectue l'accès s'appelle le client et l'application ou le service qui contient la ressource s'appelle le serveur.
Certaines API, telles que SOAP ou XML-RPC, imposent un cadre strict aux développeurs. Mais les API REST peuvent être développées à l'aide de pratiquement n'importe quel langage de programmation et prennent en charge divers formats de données. La seule exigence qui leur est liée est qu'elles respectent les six principes de conception REST suivants, également appelés contraintes architecturales :
Les API REST communiquent via des requêtes HTTP pour exécuter des fonctions de base de données standard telles que la création, la lecture, la mise à jour et la suppression d'enregistrements (également appelées CRUD) dans une ressource. Par exemple, une API REST utilise une requête GET pour récupérer un enregistrement, une requête POST pour en créer un, une requête PUT pour mettre à jour un enregistrement et une requête DELETE pour en supprimer un. Toutes les méthodes HTTP peuvent être utilisées dans les appels d'API. Une API REST bien conçue est similaire à un site Web exécuté dans un navigateur Web avec une fonctionnalité HTTP intégrée.
L'état d'une ressource à un instant ou un horodatage donné s'appelle la représentation de la ressource. Ces informations peuvent être fournies à un client dans pratiquement n'importe quel format, y compris JavaScript Object Notation (JSON), HTML, XLT, Python, PHP ou un texte en clair. JSON est communément utilisé, car il est lisible à la fois par l'utilisateur et les machines, et il est indépendant du langage de programmation.
Les en-têtes de demande et les paramètres sont également importants dans les appels d'API REST, car ils contiennent des informations d'identification importantes telles que les métadonnées, les autorisations, les identificateurs URI (Uniform Resource Identifier), la mise en cache, les cookies, etc. Les en-têtes de requête et les en-têtes de réponse, ainsi que les codes d'état HTTP conventionnels, sont utilisés dans les API REST bien conçues.
Bien que la flexibilité soit le grand avantage de la conception des API REST, cette même flexibilité facilite la conception d'une API endommagée ou peu performante. Pour cette raison, les développeurs professionnels partagent les meilleures pratiques dans les spécifications d'API REST.
La OpenAPI Specification (OAS) établit une interface pour décrire une API d'une manière permettant à un développeur ou application de la découvrir et de comprendre totalement ses paramètres et fonctionnalités : les points de terminaison disponibles, les opérations autorisées sur chaque point de terminaison, les paramètres opérationnels, les méthodes d'authentification et d'autres informations. La version la plus récent récente, OAS3 (lien externe à ibm.com), comprend des outils, tels qu'OpenAPI Generator, pour générer des clients d'API et des stubs de serveur dans différents langages de programmation.
La sécurisation d'une API REST commence également par les meilleures pratiques du secteur, comme l'utilisation d'algorithmes de hachage pour la sécurité des mots de passe et du protocole HTTPS pour la transmission sécurisée des données. Une structure d'autorisation telle que OAuth 2.0 (lien externe à ibm.com) peut permettre de limiter les privilèges des applications tiers. En utilisant un horodatage dans l'en-tête HTTP, une API peut également rejeter toute demande qui arrive après un certain délai. La validation des paramètres et les jetons Web JSON sont d'autres moyens de garantir que seuls les clients autorisés peuvent accéder à l'API.
IBM Cloud Pak® for Integration est une plateforme d'intégration hybride qui applique la fonctionnalité d'automatisation de l'IA en boucle fermée pour prendre en charge plusieurs styles d'intégration.
Gérez le cycle de vie de vos API dans plusieurs clouds, développez la socialisation et optimisez les efforts de monétisation dans l'ensemble de votre écosystème métier grâce à la gestion sécurisée des API d'IBM API Connect®.
De vos flux de travaux métier à vos opérations IT, nous avons la solution qu'il vous faut avec l'automatisation basée sur l'IA.
Les interfaces de programmation d'application, ou API, simplifient le développement et l'innovation logiciels en permettant aux applications d'échanger des données et des fonctionnalités facilement et en toute sécurité.
Téléchargez notre guide d'intégration agile qui explore les avantages d'une approche basée sur des conteneurs, décentralisée et alignée sur les microservices pour l'intégration de solutions.
L'architecture de microservices est une approche dans laquelle une application unique est composée de nombreux petits services liés de façon souple et pouvant être déployés de manière indépendante.