Introduction

L’objectif de ce cours est l’initiation au développement de serveurs et de clients web ReST.

Il s’appuie sur les prérequis sont les suivants :

  • Développement d’application PHP et connaissance du protocole HTTP :
    • paramètres de requêtes (ce qui suit le ?),
    • méthodes GET, POST …,
    • entêtes Content-Type et Accept,
    • corps d’une requête (données envoyées par le client, cf formulaires),
    • corps d’une réponse (HTML),
    • codes de statut 200, 400…, 500 ;
  • Architecture MVC avec routage d’URI et ORM ;
  • Sérialisation de données JSON ou XML.

De l’application au service web

Similarités et différences

Le développement d’un service web est très similaire à celui d’une application. La principale différence est qu’un service ne propose pas d’interface utilisateur, mais une API – réseau – destinée à être utilisée par d’autres applications (web, mobiles…).

Alors qu’une application web dispose d’une interface HTML et est destinée à des utilisateurs, un service web se contente de réceptionner ou d’envoyer des données, souvent sérialisées aux formats JSON ou XML ; un service web est utilisé par des applications.

  • Application web classique : utilisateur -> application web
  • Application web distribuée : utilisateur -> application web -> service web

Avantages des services web

Les avantages d’un service web sont les suivants :

  • Inter-opérabilité entre applications, notamment grâce à l’utilisation d’un protocole de communication (HTTP) et de formats de données standards.
  • Découplage entre fonctionnalités et interface, ce qui permet par exemple de développer plusieurs interfaces (une web et une mobile par exemple) s’appuyant sur un même service.

Technologies

Il existe plusieurs technologies pour développer des services web :

  • Les services web de type ReST exposent leurs fonctionnalités comme un ensemble de ressources identifiables par leur URI et exploitant la sémantique du protocole HTTP (les méthodes POST, GET, PUT et DELETE) pour spécifier l’action CRUD à réaliser.
  • Les services web WS-✷ exposent leurs fonctionnalités sous la forme de services exécutables à distance RPC. SOAP en est un exemple.

Style d’architecture ReST

Le style d’architecture ReST (REpresentational State Transfer) a été imaginé par Roy Fielding et présenté dans sa thèse de doctorat en l’an 2000. Ce n’est pas une technologie, mais une bonne pratique pour exposer les fonctionnalités d’un service web (comme MVC est une bonne pratique pour organiser son code).