BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Améliorez votre API REST avec les hypermédias

Améliorez votre API REST avec les hypermédias

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.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT