Comment mettre en place une stratégie de développement d'API efficace ?

Trente ans après sa création, le web ne se résume plus à une plateforme hébergeant des vidéos de chats, des recettes de cuisine et des diatribes. Pour les entreprises, il est devenu un puissant levier commercial grâce aux API.

Le web est une source de profits reliant les organisations et les consommateurs du monde entier grâce à des "autoroutes électroniques" de logiciels extensibles, rendues possibles par un outil dont l’acronyme tient en trois lettres : API (Application Programming Interface).

S’appuyant sur les normes standard pour l’authentification, la demande et la collecte des données, les API permettent aux entreprises de partager des informations et de connecter des systèmes disparates. Pour certaines d’entre elles, l’outil s’avère un accélérateur de business. Ainsi Salesforces, Expédia et eBay généreraient respectivement 50%, 90% et 60% de leurs revenus grâce aux API. Les API forment ainsi le système vasculaire de la plupart des transactions numériques, transmettant les données d’un système à un autre dans un flux constant en 1s et 0s. Mais comment les entreprises peuvent-elles appréhender les API pour en faire un levier de croissance ?

Distinguer le trafic des API et le trafic web

Toutes les équipes informatiques n’appréhendent pas les API de la même manière et, souvent, elles choisissent de les adopter après-coup en pensant que la tâche ne sera pas plus compliquée que la gestion du trafic web. Bien que les deux soient transmis via HTTP, le développement des API peut entraîner des problèmes pour les systèmes connectés et, en définitive, pour les utilisateurs et les clients qui dépendent de l'accès à l'API. Que se passe-t-il lorsque les données en sortie d'une API sont mal formées ? Qu’en est-il lorsque les appels et les fonctionnalités de l'API sont mal documentés ? Ces complications peuvent engendrer une panne, une interruption du flux de données, l’arrêt des transactions et augmenter la vulnérabilité du système aux intrusions malveillantes. La situation peut devenir encore plus problématique lorsqu'il existe un coût associé à l'utilisation de l'API. Dans ce cas de figure, l'API a souvent des contrats de niveau de service (SALs) spécifiques qui, lorsqu'ils sont violés, peuvent entraîner une perte de revenus.

Il est donc difficile de garantir des performances opérationnelles optimales, telles que des taux limites ou des temps d’aller-retour transactionnels spécifiques, lorsque la conception de l’API fait défaut. Et cette règle vaut également pour l’ensemble des micro-services et systèmes sous-jacents avec lesquels l’API interagit, comme les bases de données, par exemple. Si ces paramètres ne sont pas pris en compte, même l’API la mieux conçue peut échouer à donner les résultats escomptés

Dès lors, comment les entreprises peuvent-elles s’assurer du succès de leur démarche ? En premier lieu, il est essentiel de comprendre que le trafic des API diffère du trafic web. Chaque demande d’API peut être une lecture ou une écriture et les API recourent à des méthodes HTTP et de traitement des URIs (Uniform Resources Identifier) différentes. Chaque appel via l’API est indépendant, par conséquent elle n’utilise pas les techniques standard visant à accélérer le trafic telles que KeepAlive (connexions KeepAlive), un protocole SSL persistant ou des sessions d’authentification. Appréhender ces différences est la clé pour comprendre l’impact potentiel des API sur l’environnement et l’infrastructure applicative existants. Dès lors, le succès du développement de l’API repose sur la mise en œuvre de trois étapes essentielles.

Evaluer l’impact potentiel des API sur l’environnement existant

La première étape consiste à mesurer précisément les effets potentiels de la démarche. Avant de se lancer dans le codage, les documents de conception doivent évaluer l’interaction de l’API avec les systèmes et logiciels existants. Par exemple, si l'API exécute une tâche de calcul après la récupération de données provenant de sources différentes, quel sera l’impact des demandes d’utilisateurs simultanés sur ces systèmes ? L’entreprise dispose-t-elle des ressources informatiques nécessaires pour exploiter l’API ?

Ceci est particulièrement important lorsque les systèmes existants, notamment les bases de données, sont utilisés par d’autres applications. La sécurité est également un élément crucial de la réflexion : l'authentification API doit-elle être gérée par les systèmes de sécurité existants, comme un serveur LDAP, ou nécessite-t-elle le déploiement de nouveaux outils, comme un serveur OAuth par exemple ?

Ainsi, l’ensemble de ces paramètres et les potentiels risques de failles doivent être largement documentés pour aider les programmeurs à déterminer la manière optimale de concevoir l’architecture de l’API, d’utiliser les caches, les passerelles d'API et le code d'application afin de répondre aux besoins et atteindre leurs objectifs.

                   
 

Anticiper la gestion organisationnelle

La deuxième étape consiste à déterminer l'impact de la création et du lancement de l'API sur l’organisation de l’entreprise. Quelle équipe sera en charge de l'architecture ? De la programmation ? Du déploiement, de la maintenance et du support ? Si une organisation choisit, par exemple, de s’appuyer sur un équilibreur de charge multi-locataire pour gérer l’ensemble du trafic, elle devra s’assurer que l’équipe API soit en mesure de prendre le contrôle sur les règles du logiciel afin de pouvoir apporter les modifications de configurations nécessaires. Cette marge de manœuvre dépend parfois de décisions issues de fonctions centralisées au sein de l’entreprise qui peuvent prendre du temps et retarder, voire perturber, le travail des équipes.