• 6 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Pourquoi REST ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Il y a de multiples types d’API et c’est à vous de choisir celle qui s’adapte le mieux à vos besoins. Dans ce cours, nous étudierons les API “REST”, qui sont propres et polyvalentes pour beaucoup de types d’échange d’information entre logiciels. REST signifie “Representational State Transfer”.

Le standard REST a été créé en 2000 par Roy Fielding dans sa thèse "Architectural Styles and the Design of Network-based Software Architectures".

Roy Fielding est un informaticien américain qui a beaucoup contribué à l'informatique. Roy a participé au développement de technologies importantes comme HTML, HTTP, et URI. Il est aussi cofondateur de la fondation Apache. Fielding étant un spécialiste du web, il n'est pas étonnant qu'il définisse un style d’architecture simple et clair comme REST.

Il continue d’écrire sur ce concept, et une grande communauté de personnes contribue à maintenir les standards des API REST à un haut niveau. Ce type d’API est un type très spécial d’interface, et peu d’API peuvent avoir le privilège de s’appeler “RESTful” en raison du haut niveau de certification.

La dissertation légendaire de Roy Fielding
La thèse légendaire de Roy Fielding

La fondation d’HTTP

Les API REST sont basées sur HTTP, qui signifie Hypertext Transfer Protocol. C’est ce qui est au cœur du web ! C’est un protocole qui définit la communication entre les différentes parties du web. L’échange est basé sur des requêtes client et serveur. Un client lance une requête HTTP, et le serveur renvoie une réponse. Tim Berners-Lee, un scientifique et ingénieur en technologie au Centre Européen de Recherche Nucléaire, a inventé HTTP pendant le développement de la première version du World Wide Web. Ce sont des méthodes qui définissent les requêtes que le client peut effectuer, dont GET, PUT, POST, DELETE et encore plus. Nous verrons tout cela dans une prochaine partie de ce cours.

Bien sûr, toutes les API ne sont pas basées sur HTTP, mais en choisissant une API REST, vous permettez une meilleure intégration car vous imitez le style de communication du web !

La dissertation légendaire de Roy Fielding
Vous utilisez HTTP tous les jours, même si vous ne le remarquez pas ! 

Les critères REST

Les API REST imitent la façon dont le web lui-même marche dans les échanges entre un client et un serveur. Une API REST est :

  • Sans état

  • Cacheable (avec cache = mémoire)

  • Orienté client-serveur

  • Avec une interface uniforme

  • Avec un système de couche

  • Un code à la demande (optionnel)

Le principe du client-serveur définit les deux entités qui interagissent dans une API REST : un client et un serveur, les mêmes entités qui communiquent sur le web. Un client envoie une requête, et le serveur renvoie une réponse. Ce dernier doit avoir le plus d’informations possible sur le client, car il est important qu’ils soient capables de travailler indépendamment l’un de l’autre.

 

La relation typique client-serveur sur le web.
La relation typique client-serveur sur le web.

Le fait d’être “sans état” signifie que le serveur n’a aucune idée de l’état du client entre deux requêtes. Du point de vue du serveur, chaque requête est une entité distincte des autres. Ensuite, le cache, pour les API REST,  met en jeu le même principe que pour le reste d’Internet : un client doit être capable de garder en mémoire des informations sans avoir constamment besoin de demander tout au serveur. Ce sont les concepts de base à comprendre sur REST, nous verrons les autres lorsque vos projets deviendront plus complexes.

Les réponses du serveur pour les API REST peuvent être délivrées dans de multiples formats. JSON (JavaScript Object Notation) est souvent utilisé, mais XML, CSV, ou même RSS sont aussi valables.

Les autres API

L’alternative la plus utilisée à une API REST est appelée une API SOAP. SOAP signifie “Simple Object Access Protocol”. Contrairement à REST, SOAP n’est pas quelque chose de structuré mais plutôt un protocole, car il définit avec des règles strictes une méthode de communication entière. Les données sont souvent renvoyées sous forme de XML (eXtensible Markup Language). Nous n'étudierons pas les API SOAP dans ce cours.

Exemple de certificat de réussite
Exemple de certificat de réussite