L'objet de ce billet: Illustrer avec un exemple assez complet la mise en pratique du web service REST (JAX-RS) s'appuyant sur l'implémentation RestEasy de JBoss avec Spring 2.5.
L'exemple repose sur les briques (api) suivantes. Notez bien la version lorsqu'elle est mentionnée.
- RestEasy: L'implémentation Jboss de jax-rs (JSR 311),
- Spring 2.5 et les annotations,
- Hibernate pour la partie persistence
- L'api Dozer v4.0 pour les DTO (Data Transfert Objetc) ou VO((Value Object).
- Junit 4.4,
- HttpUnit,
- XMLUnit.
Nota:La version Dozer 4.0 a renommé complètement ses packages. Certains tutos sur le web sont donc caduques.
C'est à la fin de l'étape 5 que nous détaillons l'emploi de l'api Dozer.
Quelques repères:
REST (Representational State Transfer) développé par Roy Fielding qui est l’un des fondateurs du protocol HTTP.
JSR 311 est la spec JAX-RS: Java API for RESTful Web Service. Finalisée en mars 2008.
Les CINQ principes de REST
- P1: Tout est ressource, un identifiant unique à chaque ressource (http://localhost:8888/clients/2 pointe sur le client ayant id=2),
- P2: Utiliser les méthodes HTTP (HEAD/GET/POST/PUT/DELETE). Et les erreurs standards HTTP,
- P3: Les échanges avec plusieurs représentations ( xml,(x)html, json,..),
- P4: Échanges sans état (stateless),
- P5: Lier les ressources entre elles.
PRÉ-REQUIS: Java5.