BT

Améliorez votre API REST avec les hypermédias

par Jan Stenberg , traduit par Mathieu Pousse le 11 oct. 2013 |

Quand nous avons commencé à construire une nouvelle API Web pour notre business, nous cherchions à proposer quelque chose de vraiment complet, et la solution sur internet était de construire une API RESTful, a révélé Amy Palamountain lors d'une récente présentation à TechEd en Nouvelle-Zélande.
Les API RESTful sont-elles toujours la bonne solution ? Amy estime que cela dépend du contexte, mais, en ce qui concerne les APIs publiques, elle conseille par expérience de privilégier une API RESTful basée sur les concepts principaux d'HTTP et du web.

SOAP et autres API RPC (Remote Procedure Call) concernent deux contextes d’exécution, coté client et coté serveur, quand le client invoque à distance une action sur le serveur. C'est un modèle axé sur l'action, qui nécessite un accord préalable ce qui rend le client étroitement lié au serveur. Pour Amy, ce modèle est moins adapté aux API publiques car il n'est ni très accessible ni flexible. Un changement sur le serveur risque de casser le client.

La première étape pour Amy lors de la migration des architectures RPC est de transformer les actions en ressources qui exposent les concepts du domaine : les entités. Une autre partie du travail est d'utiliser les concepts HTTP et des URIs ce qui rend l'API plus accessible et plus facile à utiliser car conforme à la spécification HTTP.

Mais il reste toujours une partie inhérente à la façon d'utiliser l'API qui est coté client ; un changement des relations entre les ressources va casser le client et nécessiter un redéploiement.

L'étape suivante dans la stratégie d'Amy est d'ajouter des liens hypermédia là où les liens peuvent être utilisés pour montrer comment les ressources sont liées entre-elles. L'utilisation des liens dans une API web garantit que toutes les informations nécessaires sont incluses ; il n'y a pas d'information supplémentaire qui nécessiterait une nouvelle connexion.

Les liens hypermédia suppriment la partie inhérente qui restait dans le client :

  • Les liens montrent comment les ressources sont liées les unes aux autres
  • Les liens montrent comment interagir avec la ressource dans le contexte et les actions possibles
  • Les liens activent dynamiquement l'ajout et la suppression de commande selon le contexte

Il reste certains détails pratiques malgré cela qui doivent être réfléchis, spécialement coté client. Les clients contrôlés via les API avec les liens hypermédia doivent comprendre le media type utilisé par le serveur. Le media type décrit la signification des liens et des formulaires.

Dans sa présentation, Amy utilise un exemple avec un serveur et deux clients, l'un utilisant les ressources et les URIs, l'autre utilisant hypermédia, tous les deux écrits en C# et se basant sur l'API Web d'ASP.NET.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT