REST Service

  • Acronyme de REpresentational State Transfer
  • Paradigme resource-oriented
  • Style d'architecture contrairement à HTTP qui est un protocole de communication

Resource

Les concepts du domaine
  • identifiés par des URI
  • manipulé par les méthodes HTTP (GET, PUT, POST, DELETE, OPTIONS, HEAD)
  • représentées par des documents HTML ou des données JSON
  • liées entre elle par des liens hypertexte
Les Resources Rest sont stateful.

Representation

Représentation d'une ressource contenant
  • des métadonnées (size, media-type, character, ...)
  • du contenu (binary image, text document, json, xml, pdf ...)
Une même ressource peut avoir plusieurs représentation!

Component

Comment nos resources sont-elles distibuées, gérées et accédées ?
  • user agents (Firefox, ...)
  • origing server (WebSphere, Tomcat, ...)
  • gateways
  • proxies

Connectors

Comment les composants communiquent-ils entre eux ? Abstraction de
  • gestion réseaux (socket TCP/IP)
  • protocole (HTTP)
Type
  • client connectors (Apache HTTP Client lib, ...)
  • server connectors (Jetty HTTP Server lib, ...)
  • caches
  • resolvers
  • tunnels
  • protocols (HTTP, POP3, SMTP, FILE, ...)
La communication Rest est stateless.

Avantages

  • Réduction du couplage entre client et serveur car aucune génération de stub ou proxy nécessaire
  • L'infrastructure réseaux peut offrir des services clés comme le caching, la réémission auto de messsage grâce à l'utilisation des méthodes HTTP pour définir les interactions
  • L'utilisation d'une DB RESTful comme Apache CouchDB estompe la séparation entre le web et les db relationnelles.

Liens