Informations
Présenté par Roman GARCIA et Hugo THOMAS, tous deux développeurs à Cosium.
Leur idée de conférence a germé suite à la conf’ de Julien TOPÇU « REST next level : Écrire des APIs web orientées métier (Replay ici), le GOAT de toustes (NP: pas étonnée que le boug soit une source d’inspiration ici en tout cas).
Leur conférence est un retour d’expérience, suite à l’implémentation d’hypermédia controller dans leur API principale. En revanche, dans le but de réaliser leur démonstration, ils nous ont codé une API en JAVA accessible dans leur repos GitHub (ici).
Bases
Rappel de ce que sont les niveaux dans la norme REST pour les APIs :
Niveau 1 : XML
Niveau 2 : Ressources
Niveau 3 : Verbes HTTP
Niveau 4 : Hypermedia
Les avantages à utiliser HATEOAS (Hypermedia As The Engine Of Application State) :
- Exposition des relations entre les objets,
- L’API est introspectable,
- La logique métier est dans le backend,
- Le découplage entre le client et le serveur est amélioré.
Cas pratique
Nous passons au cas pratique de la vente de lunettes de soleil. Nous avons donc une API qui permet de gérer la commande de lunettes, si les conditions préalables sont remplies (c.-à-d. avoir une monture + un verre droit + un verre gauche).
Le code montré est réalisé en JAVA, avec le framework SPRING. Dans le cadre de l’utilisation d’hypermédia, la librairie SPRING HATEOAS a été utilisé.
Outre les nombreux avantages de l’utilisation des hypermédias, il y a cependant, quelques inconvénients qui ont été rencontrés lors de leur implémentation en entreprise :
- Leurs utilisations restent à la marge (malgré la famousité de REST hein, mais bon, on ne va pas en débattre),
- L’implémentation des hypermédias controller, est complexe les premières fois,
- Le client doit être adapté pour les utiliser,
- La librairie SPRING HATEOAS est encore en draft…
Conclusion
En conclusion, cette conférence montrait de la théorie, un peu de pratique et relatait d’un retour d’expérience vécu en entreprise.
Je n’ai pas appris beaucoup plus sur les hypermédias, en revanche, c’était une bonne conférence, le contenu était honnête et accessible, ce sont des très bons points.
Pour approfondir le sujet
- Et si vous lisiez d’abord la thèse créatrice de la norme REST avec les hypermédias, avant tout ? Ici 🙂
- Le blog d’Octo contient un article plus abordable au sujet des hypermédias, ici.
Devoxx 2023