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-TypeetAccept, - 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 ;
- paramètres de requêtes (ce qui suit le
- Architecture MVC avec routage d’URI et ORM ;
- Sérialisation de données JSON ou XML.
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.
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).