Aller au contenu

Introduction à l’univers des API 

Chaque jour, dans notre environnement professionnel ou personnel, nous utilisons des dizaines voire des centaines d’API sans le savoir. Que vous souhaitiez intégrer une carte de navigation sur votre site ou que vous voyiez des informations personnalisées en fonction de votre historique de navigation, vous aurez affaire à une voire plusieurs API.   

Sommaire

Qu’est-ce qu’une API ?

Les fondamentaux

Tout d’abord, le terme API est l’acronyme anglais de Application Programming Interface. 
C’est une interface de programmation, permettant d’accéder à une application (ex : Google Maps) ou un service (ex : données clients). En effet, cette définition peut en perdre plus d’un, c’est pourquoi nos experts QA nous ont donné une belle analogie que tout le monde comprendra.

Considérons que vous êtes client dans un restaurant (dans une entreprise c’est le testeur, le Product Owner, le développeur). En premier lieu,  après avoir pris place à table, vous analysez le menu des plats disponibles (le catalogue des API disponibles dans SI). Puis vous commandez ou êtes servis par l’intermédiaire d’un serveur (API). Ainsi, Il va être l’intermédiaire entre vous et la cuisine comme une API peut le faire lorsqu’elle est sollicitée.

Quelles sont ses principales fonctions ?

  • Communiquer entre différentes sections du site (front et back) et/ou services (interne et externe) 
  • Transmettre / aller chercher de l’information dans les différentes bases de données ou encore en dehors de l’entreprise (exemple : une entreprise de recharge électrique va interroger les API que des entreprises mettent à disposition. 
  • Servir de lien entre 2 services qui n’ont pas le même langage informatique. 
     

Par exemple, 2 services ferroviaires utilisent des réseaux partagés. Néanmoins, ces 2 services n’ont pas les mêmes règles de gestion. Par conséquent, une API va s’interposer entre les 2 pour servir de traducteur. 
Pour prendre un autre exemple, lors d’un voyage à l’étranger, vous essayez de converser avec une personne locale dont la langue n’est ni le français ni une langue que vous connaissez. Il sera possible de comprendre ce qu’elle veut dire à condition que vous utilisiez un traducteur qui fera la passerelle entre vous 2.  

Quels sont les principaux types utilisés aujourd'hui ?

  • API REST : née il y a une dizaine d’année, la plus populaire mais dont la sécurité est plus modeste. Elle a une architecture basée sur HTTP et qui fonctionne avec JSON, XML, YAML… 
  • API SOAP : la plus ancienne, dont la sécurité est accrue mais dont le coût est plus conséquent et l’élaboration est plus compliquée. Elle a une méthode de communication basée sur XML langage informatique strict.  

Quels sont les grandes catégories d’API ?

Interne : API qui s’utilise au sein même d’une entreprise dans un environnement sécurisé (dev, recette…). Elle n’a pas pour but d’être partagée. Elle va être assez évocatrice. Les noms des micro-services seront à l’intérieur car il n’y a pas de raison de sécuriser l’API car elle se trouve déjà dans un environnement sécurisé.  

Partenaire : API qui est exposée au service BtoB comme Uber et Google Maps. Ce dernier va mettre à disposition une carte pour l’utilisation contrôlée de Uber avec une documentation pour que chaque partenaire puisse l’utiliser. Elle va avoir un degré de sécurité plus élevé. Elle va fonctionner avec un “Token” qui s’apparente à un jeton unique qui vous donne le droit ou vous autorisera à réaliser diverses actions.  

Public : API accessible à tout le monde. Il suffit de prendre un lien sur internet et il va fonctionner sans être sécurisé par un mot de passe ou une accréditation. Exemple, API de RandomDog.

De quoi est constituée une API

Une API est constituée de micro-services : ces micro-services vont faire de petits appels en fonction du contexte et de ce que tu veux récupérer.  
Par exemple, sur la page d’accueil de La Fnac, il y’a pas loin d’une vingtaine d’appels afin de présenter les produits. Si La Fnac propose des produits personnalisés en fonction de la navigation antérieur de l’utilisateur c’est qu’elle fait appel à un micro service qui pourrait s’appeler “recommandation” et qui est lié aux cookies sur le site.  

Les 4 appels principaux pour utiliser une API

Il en existe plus que 4 mais mais 90% des actions sont réalisées par ces appels :  

  • POST : cet appel va créer ou mettre à jour la donnée en fonction des accords entre les développeurs. Exemple quand une personne s’inscrit à un service on va faire un appel POST SUBSCRIPTION pour créer une ligne dans la base de données des clients.  
  • GET : cet appel va permettre de lire dans une base de données pour retourner une information. Exemple, sur le site dont la personne vient de réaliser son inscription, elle recherche une image de chien. L’appel qui va être réalisé afin de montrer à cette personne l’ensemble des photos répondant à la requête sera réalisé via un appel GET 
  • PUT : Cet appel permet de mettre à jour la donnée. En reprenant l’exemple, si une personne après son inscription veut mettre à jour son adresse postale, les données dans la base de données vont se mettre à jours via un appel PUT 
  • DELETE : cet appel va supprimer des informations dans la base de données. Par exemple, si la personne qui vient de s’inscrit veut supprimer son compte totalement en appliquant ses droits RGPD, la ligne avec l’ensemble des informations de la personne va être supprimer suite à l’appel DELETE. 

Exemple d’appels lors de l’utilisation de l'application UBER

Prenons l’exemple que vous utilisez l’application UBER pour la première fois. La première chose que vous demande l’application est de vous inscrire. Votre inscription va être une nouvelle ligne dans la/les bases de données via un appel POST. Grâce à votre inscription, vous atterrissez sur une MAP.

Comme on peut s’y attendre, la Map qui s’affiche sur UBER n’est pas codée par Uber. De ce fait, l’application fait un appel GET avec les données de localisation afin d’afficher la carte. De plus, si vous souhaitez réserver un Uber, grâce à l’appel POST, le système va créer une nouvelle course dans la base de données “Ride” tout en allant chercher les informations dans diverses bases de données (client / chauffeur / véhicule) via des appels GET.

Enfin lorsque votre course est réalisée, le paiement va se déclencher en faisant appel au service STRIPE via son API. Toutefois, lors du paiement, vous vous rendez compte que la carte enregistrée n’est plus la bonne. Par conséquent, via un appel PUT le système pourra mettre à jour vos coordonnées bancaires.

uber application
Uber application API

Quels sont les avantages et inconvénients de faire appel à des API’s

Avantages de faire appel à des API’s :

  • Permet de simplifier les développements en ne développant pas tout par soi-même 
  • Ajout de fonctionnalités déjà existantes 
  • Permet la mise à disposition d’informations sans compromettre la sécurité 
  • Reprendre des services existants et rester dans son cœur de métier 
  • Possibilité de monétiser l’API créée et ainsi avoir une source de revenu 
  • Documentation propre mettant en avant les appels et les retours attendus. En tant que testeur avant de tester une API il faut demander le SWAGGER. Une première documentation qui définit ce que fait l’API. Il va définir les informations requises pour faire un appel et les différentes réponses possibles (200 = bonne info ; 400 = mauvaise requête ; 500 = erreur inattendue) 
  • Pour les QA, faire des tests directement sur l’API via POSTMAN permet de vérifier beaucoup plus rapidement différents points du flux. Bien sûr cela ne remplace pas le test de bout en bout.  
  • TEST TNR : automatiser les jeux de données, en les créant via API pour raccourcir les tests.  


Les inconvénients des API : 
il existe peu d’inconvénients, ce qui explique qu’aujourd’hui, presque l’ensemble, des entreprises digitales en utilisent.  

  • Pour les entreprises qui mettent à disposition des API, la difficulté est d’estimer la valeur  
  • L’usage des API impacte la sécurité des systèmes qu’il faut alors renforcer 

Pourquoi et quand tester les API ?

Avant de lancer une API ou d’utiliser une API partenaire, il est important de la tester afin de :  

  • Vérifier la bonne connectivité entre les services  
  • Assurer la qualité des données exposées  

Exemple chez Datanumia, il est primordial pour la satisfaction client de vérifier que la donnée affichée dans la partie “mes consommations” soit bonne et cohérente avec la consommation du client. Si cela n’est pas le cas, le client va exprimer son mécontentement au niveau du service client et par conséquent va augmenter le taux d’insatisfaction.  

Il est impératif de faire régulièrement des tests que ce soit au cours de l’intégration / développement de l’API pour vérifier la qualité des données exposées ou lors d’évolutions pour s’assurer qu’il n’y a pas de régression et que les connectivités avec tous les systèmes sont toujours en place. 

Tester une API

Que teste-t-on ?

Les tests vont dépendre des API et de la complexité mais en général voici une liste non exhaustive des bases à tester :  

  • La donnée est correcte 
  • Les normes de sécurité sont activées et fonctionnelles (exemple connexion avec un TOKEN pour une API partenaire) 
  • Le format du message retour est cohérent (que le fichier soit bien dans le bon langage XML et non JSON par exemple) 
  • La disponibilité de l’API : si un système ne fonctionne pas ou si l’API a crashé.  

Ces batteries de tests sur les API sont souvent réalisés par les développeurs ou les personnes en charge de la qualité connu sous le nom de QA 😉. Il n’y a pas besoin d’avoir des compétences spécifiques pour tester une API. En revanche, la moindre erreur dans la requête ou le paramétrage peut faire échouer les tests, il faut donc faire preuve de rigueur et d’attention au détail.  

Au premier abord, utiliser un logiciel pour tester une API comme POSTMAN peut être impressionnant car l’interface contient des lignes de code. Mais si elle a une structure cohérente avec des intitulés cohérents la lecture d’une API est accessible à tous.  

Pour conclure, les APIs sont utilisées par de nombreuses entreprises pour limiter les coups de développement et permettre l’échange de données en temps réel. Alors que les APIs se généralisent, il est important de connaître leurs forces et leurs faiblesses pour profiter de toutes leurs potentiels. Vous souhaitez développer vos connaissances en quality management, découvrez tous nos articles sur le sujet !