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
Representation
Représentation d'une ressource contenant- des métadonnées (size, media-type, character, ...)
- du contenu (binary image, text document, json, xml, pdf ...)
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)
- client connectors (Apache HTTP Client lib, ...)
- server connectors (Jetty HTTP Server lib, ...)
- caches
- resolvers
- tunnels
- protocols (HTTP, POP3, SMTP, FILE, ...)
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.