Application Program Interface (API) - Définition et Utilisation

06/08/2020

Laurent Buffevant

Développement Back

Photo par: @victor_g sur Unsplash

Vous avez déjà probablement entendu parler d’API. Mais qu’est-ce donc ? Quand et pourquoi en utiliser ? Quels sont les pièges à éviter ? Comment Studio HB peut vous accompagner dans la conception ou la consommation de vos API ?

Suivez le guide, c’est par ici !

Qu’est-ce qu’une API (Application Program Interface) ? Définition

Une API (Application Programming Interface) - Interface de Programmation d’Application en français - est couramment décrite comme un moyen pour faire communiquer deux systèmes d’information. Ces systèmes d’information peuvent prendre différentes formes :

  • Application mobile
  • Site internet
  • Base de données
  • Logiciel métier
  • Terminal de paiement

Concrètement, une API va par exemple être utilisée pour faire communiquer votre nouvelle application smartphone avec le serveur hébergeant vos données. La même API peut être utilisée par votre site web pour récupérer et mettre à jour ces mêmes données. L’énorme avantage est que les différents systèmes d’informations peuvent être développés dans des langages complètement différents ; l'API leur permettra de dialoguer et d’échanger dans une langue commune.

Types d'API et leur fonctionnement

Un schema d'API
Un schema d'API

Une API se caractérise toujours par une interface d’entrée (input) et une interface de sortie (output). En clair, une API permet de recevoir une information afin d’en renvoyer une autre en réponse après l’avoir analysée et traitée.

Mais une API n’est pas qu’une passerelle!

Vous entendrez souvent le terme de "passerelle" ou de "webservice" comme synonyme d’une API. C’est partiellement vrai. Un webservice permet la communication entre deux systèmes d’information sur un réseau, mais l'API va plus loin : elle permet l’interaction entre deux systèmes qui peuvent être à l’intérieur d’une même application. Un webservice est donc un type d'API, mais il existe bien d’autres types d'API.

Par exemple, pour les plus techniques d’entre vous, ActionDispatch, qui gère le routage des requêtes HTTP, est une API qui permet d’accueillir en entrée une requête HTTP et de la diriger vers le bon Controller Rails. ActionController est lui-même une API permettant de traiter les informations de la requête, d’appeler d’autres API (ApplicationRecord, Services, Policies, ActionView, etc.) afin de renvoyer en retour un contenu (HTML, JSON, XML, CSV, etc.) que votre navigateur pourra interpréter.

Qu’est-ce qu’une bonne API ? Quels sont les pièges à éviter ?

Ce n’est pas tout de vouloir mettre en place des API. Encore faut-il respecter certaines règles pour qu’elles soient efficaces et pertinentes.

Utiliser les normes et protocoles standardisés

Si vous souhaitez que votre API soit facilement utilisée (consommée) par le plus grand nombre, il est nécessaire de la développer en suivant des normes et protocoles standardisés. Intéressons-nous principalement aux API web, qui sont les plus couramment rencontrées :

  • Le protocole de transport le plus utilisé est HTTP (HTTPS pour la version sécurisée). Ce standard est reconnu et interprété par tous les systèmes d’information existants.
  • Pour concevoir des API web, l’architecture REST est la plus connue et utilisée. Elle offre simplicité et flexibilité.
  • GraphQL, une architecture plus récente, est conçue pour être plus performante et adaptée aux écosystèmes modernes (JavaScript, React, etc.).
  • D'autres architectures comme SOAP ou XML-RPC existent, mais sont de moins en moins utilisées.
  • Les formats de réponse doivent être standardisés : JSON et XML pour les données, HTML pour l’affichage.

La documentation, La clé pour comprendre une API

Une API doit nécessairement être bien documentée. Sans documentation, il est impossible de la comprendre ou de l’utiliser correctement. La documentation doit couvrir :

  • Les protocoles, architectures, et formats de réponse utilisés.
  • Les méthodes de connexion et d’authentification.
  • Les points d’accès (URL, dans le cas des API HTTP) de chaque flux, avec description des paramètres attendus et des réponses fournies.
    Une réponse d'API
    Une réponse d'API

    L’utilisation des API en agence web : notre cas chez Studio HB

    Chez Studio HB, les API (Application Program Interfaces) sont notre quotidien. Pour nos clients dans l’immobilier, par exemple, nous récupérons les biens en vente via des API fournies par des éditeurs de logiciels immobiliers (Apimo, Avantio, Hektor, etc.), que nous connectons à leurs sites web.

    Pour les projets nécessitant des paiements en ligne, nous nous connectons aux API des banques (Monetico/CIC) ou d'intermédiaires bancaires (Stripe, Systempay).

    Nous utilisons également des API pour bien d’autres fonctionnalités, comme la connexion aux réseaux sociaux, la récupération de statistiques via Google Analytics, ou encore l’affichage de cartes interactives.

    À l’inverse, nous développons des API privées pour nos clients, par exemple pour communiquer des informations externes ou échanger des données. Dans le domaine de l’immobilier, nous avons mis en place une API permettant d’envoyer des descriptions de programmes sur des plateformes de visites virtuelles comme Habiteo.

    En conclusion, les API (Application Program Interfaces) sont des outils essentiels pour connecter différentes applications et systèmes. Que vous ayez besoin d'une API pour votre site web, votre application mobile ou d'autres solutions logicielles, une application program interface bien conçue peut faciliter ces interactions. Studio HB vous accompagne dans la création et l'intégration de vos API pour rendre vos projets plus efficaces et fonctionnels.

    N’hésitez pas à nous contacter pour discuter de la conception ou de l’utilisation d’une API adaptée à votre projet !