Les Web services: REST

Stéphane Genaud

Introduction

Le W3C définit un Web service: “ a software system designed to support interoperable machine-to-machine interaction over a network.

Le W3C distingue 2 types de web services:


Les services web arbitrary, avec SOAP, sont présentés ici.

REST : principes

Representational State Transfer (REST) définit quelques principes simples pour concevoir des systèmes distribués de type hyper-média (comme le world wide web).

Une architecture REST :

REST : principes

Pour qu'un système puisse être qualifié de RESTful, il faut les caractéristiques suivantes:

REST : principe Interface Uniforme

Exemple de ressource

Soit un système d'interrogation météorologique, composée de ressources. On peut désigner et obtenir une représentation de chaque ressource.

ressource

figure empruntée à Jean-Paul Figer

Exemple de ressource

On peut décider que cliquer sur http://fr.weather.com/weather/today-Paris-FRXX0076 signifie la demande d'une représentation de la resource.

On obtient

Date: Fri, 16 Jan 2009 22:16:10 GMT
Server: Apache
Content-Language: fr-FR
Keep-Alive: timeout=1, max=7482
Connection: Keep-Alive
Content-Type: text/html;charset=UTF-8
Cache-Control: private
Content-Encoding: gzip
Transfer-Encoding: chunked

200 OK

Les opérateurs

Les opérateurs sont les interfaces uniformes proposées par le serveur.

L'application d'un opérateur sur une resource peut être vue comme la transition qui fait passer le système d'un état à un autre.

Dans de très nombreux cas, les opérateurs peuvent se limiter à CRUD.

Dans ce cas, l'implémenation avec HTTP peut être la suivante.

HTTP Method CRUD Action Description
POST CREATE Création d'une nouvelle ressource
GET RETRIEVE Obtenir la représentation d'une resource
PUT UPDATE Modifie la ressource
DELETE DELETE Supprime la ressource

Opérateurs

Vue schématique des effets de POST/GET/PUT/DELETE

ressource

Les opérateurs