Qu'est-ce qu'une API RESTful ?

Avec tout le battage médiatique autour des services Web RESTful, on pourrait croire qu'il s'agit d'un nouveau concept qui a fait irruption sur la scène il y a seulement un an ou deux. En réalité, les concepts qui sous-tendent les API RESTful sont aussi vieux que le web lui-même et c'est dans cette perspective qu'il faut les comprendre.

Schéma de l'API RESTful

Avant de nous plonger dans la description des API RESTful, voyons pourquoi vous devriez vous y intéresser. Des centaines de méthodes ont vu le jour au fil des ans pour faire en sorte que les ordinateurs connectés ensemble via un réseau parlent la même langue. L'évolution de ces méthodes, ou « protocoles », a conduit à l'acceptation d'un grand nombre de normes convenues, chacune traitant la communication informatique d'une manière spécifique. Les plus importantes de ces normes sont les couches Application et Présentation, où s'échangent la logique métier et les données qui en résultent.

REST s'appuie sur cette liste de normes de manière à ce que les humains puissent comprendre facilement ce qui est échangé tout en permettant aux ordinateurs de communiquer efficacement entre eux. Vous avez peut-être aussi entendu parler de plusieurs autres technologies qui peuvent résider ici, comme SOAP (qui nécessite une quantité considérable de données et de puissance de calcul et ne convient pas vraiment aux ressources limitées des applications mobiles), JMS (qui est spécifique aux applications Java) et XML-RPC (qui présente bon nombre des mêmes problèmes que SOAP sans aucun des avantages de normalisation).

Le guide définitif du succès pour le chef de produit API
Le guide définitif du succès pour le chef de produit API
Exploitez la puissance des API grâce à un guide de réussite en sept parties expliquant comment les entreprises peuvent créer des programmes d'API pour développer leurs activités numériques !

REST permet de transmettre une quantité minimale de données en utilisant les mêmes mécanismes bien établis qui définissent le web, sans les encombrements introduits par des protocoles plus volumineux. Cela permet aux programmeurs de créer plus rapidement des programmes qui accèdent aux données exposées par les API et agissent sur celles-ci, même dans des environnements où les vitesses de réseau sont peu fiables et la puissance de calcul limitée.

REST fonctionne presque exactement comme un site web dans un navigateur. Une ressource est exposée à un programme via une URL. Le programme peut accéder à cette URL et recevoir des données concernant la ressource, un peu comme lorsque vous tapez une URL dans votre navigateur et que vous recevez une page Web en retour. Les API RESTful bien conçues comprennent des liens supplémentaires que le programme peut suivre pour demander des informations connexes (de la même manière que vous cliquez sur un lien pour visiter une nouvelle page), ou pour soumettre des données afin de mettre à jour la ressource en question (de la même manière que vous remplissez un formulaire web pour créer un nouveau compte sur un site web).

La contrepartie de toute cette flexibilité est l'absence de normes bien définies. Le but de REST est de décrire la méthode par laquelle les données sont transférées, mais les responsables de la mise en œuvre ont été laissés essentiellement à eux-mêmes pour déterminer l'aspect de ces données. Cette situation évolue rapidement, notamment en raison de l'augmentation du nombre d'appareils mobiles accédant aux données sur le réseau, mais il faudra un certain temps avant que ces formats ne se fondent en quelque chose qui ressemble à de véritables normes.