Les API sont aujourd’hui incontournables pour construire une application performante et évolutive. Mais alors, qu’est-ce qu’une API ? Comment fonctionne-elle ? Et comment les utilisons-nous dans nos plateformes ?
Pour faire simple, une API est une interface de programmation d’applications (« Application Programming Interface » en anglais). Elle permet aux applications de communiquer entre elles et d’échanger des informations selon des normes et des conditions prédéfinies. L’essentiel à connaitre d’une API se résume en la liste de fonctions qu’elle permet d’appeler directement au sein d’un programme informatique et ce, sans en connaitre le fonctionnement exact. En effet, une API expose un service à une autre application mais n’encadre pas l’exécution du traitement derrière.
Les API auxquelles nous pensons naturellement sont les API qui exposent les services de l’application à laquelle elles sont rattachées. Dans le cas des réseaux sociaux par exemple, les données d’une publication Facebook ne sont pas celles d’une publication Twitter du fait de la structure de la publication, bien spécifique à chaque réseau social. Ainsi, chaque réseau a développé volontairement l’API dont elle est propriétaire pour permettre d’échanger ses données et placer cette interface de programmation au cœur de la stratégie de développement de l’application.
D’un autre côté, le service proposé par une API peut être d’utilité publique. L’API est alors standardisée pour généraliser son utilisation par différents acteurs. Par exemple aujourd’hui, l’open banking/DSP2 est un service proposé par toutes les banques et rendu possible grâce aux fonctionnalités des API de paiement. A l’inverse de Facebook, les banques sont contraintes par la réglementation de développer ces API de paiement dont la signature (ie le contrat de fonctions) est normalisée.
Attention :
Quelques exemples concrets d’API dans notre quotidien :
Plusieurs types d’API existent : les référentiels, SOAP, les REST… Cet article n’a pas vocation à faire le catalogue des interfaces de programmation. Si vous souhaitez en savoir plus sur ce sujet, nous vous invitons à lire des articles spécialement consacrés aux différents type d’API (comme par exemple dans cet article ou cette vidéo) :
Nous nous concentrerons dans cet article sur le fonctionnement des API REST que nous utilisons principalement dans nos plateformes. Les API REST se sont développées à partir des années 2000 et largement imposées ces dernières années grâce à leur fonctionnement simple et flexible. Ce sont des API web, c’est-à-dire qu’elles fonctionnent via internet grâce à des appels qui prennent la forme de requêtes http qui est le protocole de communication du web.
Plus concrètement, REST fait appel à des requêtes http (avec la version sécurisée https) par le biais de différentes méthodes dont les principales sont : GET (Obtenir) – PUT (Placer) – POST (Publier) – DELETE (Supprimer). En retour de la requête envoyée sous la forme d’un lien URL envoyé à l’API, cette dernière va générer une action adaptée à la méthode utilisée lors de la requête :
Cette action peut prendre différents formats (JSON, XML etc.) selon le choix de l’émetteur de l’API. Pour l’intégration des réponses, le format JSON (JavaScript Object Notation) est généralement utilisé car il est plus léger et moins verbeux que le XML (Extensible Markup Language).
Pour en apprendre davantage sur le fonctionnement d’une API REST, nous vous conseillons de visualiser cette vidéo.
ESG Connect est une plateforme SaaS (Software as a Service) que nous avons développée dans le but de démocratiser l’investissement socialement responsable en connectant les données, les équipes et les acteurs financiers entre eux.
Nous avons intégré des APIs déjà existantes pour profiter de services proposés par d’autres applications telles que :
En parallèle, nous avons développé nos propres API via le service cloud d’AWS API Gateway pour faire communiquer les deux parties existantes de notre plateforme.
Pour rappel, une plateforme est généralement composée du :
Nos APIs créés permettent d’échanger des données financières ou extra financières (structurées ou non) entre les deux parties, pour ensuite les stocker dans une base de données (dans notre cas DynamoDB qui est une une base de données NoSQL). Avec un vocabulaire plus technique, les API permettent d’échanger les données entre Angular (le frontend) et nos fonctions lambdas (Python) qui communiquent à leur tour avec DynamoDB.
Pourquoi vouloir intégrer ces données dans une telle base de données ?
Illustration par un exemple : intégration des données d’un nouveau provider
La difficulté repose sur le fait d’intégrer tout type de source de données ESG (excel/pdf) dans lequel est contenu l’information du provider puis de contrôler la qualité de ces nouvelles données.
La première étape consiste à définir le paramétrage des données intégrées. Nous avons défini à l’origine du projet un ensemble de données que nous voulons récupérer auprès des fournisseurs : scores ESG, KPIs ESG, Controverses, Screening, Climat (Alignement 2°, etc), SDGs, Engagement, Votes… (liste non exhaustive).
Le paramétrage est défini en fonction de la source de données (pour excel par exemple, nous sélectionnerons seulement les quelques colonnes qui comportent les données qui nous intéressent). L’objectif à long terme est de normaliser le traitement des données pour tous les fournisseurs.
Dans un second temps, le chargement et l’intégration des données dans la base de données se font via les APIs que nous avons développées.
Orion est une plateforme de comparaison des offres de fournisseurs de données ESG, recensant aujourd’hui plus de 60 fournisseurs. Grâce à ce « TripAdvisor de la donnée ESG », n’importe quel utilisateur est capable de trouver en quelques recherches le fournisseur adapté à ses besoins.
Pour cela, nous avons utilisé des services exposés par différentes API existantes tels que :
Nous avons également développé nos propres APIs REST pour permettre d’afficher à l’écran les résultats d’une recherche effectuée par un utilisateur sur les providers. Le catalogue des providers s’appuie sur une base de données stockées en backend sur le cloud et dont les informations sont remontées à la partie front end après chaque recherche via des APIs.
Pour résumer, les APIs sont capables de collecter, traiter et analyser des données complexes et non structurées d’une manière plus optimale et plus rapide que des développements internes l’auraient permis.
Les API ont permis de faciliter la connexion de multiples sources de données et l’intégration de nouveaux services/fonctionnalités dans nos plateformes les rendant ainsi plus dynamiques et efficientes.