Concevoir une application REST
REST (REpresentational State Transfer) est un style d'architecture qui propose une alternative dans le domaine de la conception de services Web, en remettant sur le devant de la scène des principes forts qui ont fait le succès historique du Web. L'interopérabilité demeure une problématique complexe, et les normes WS-* portées par la SOA sont parfois jugées trop lourdes, voire inadaptées. C'est dans ce contexte que REST trouve naturellement sa place, sans prétendre être une solution universelle.
Ce cours vous permettra de comprendre REST, redécouvrir le protocole HTTP et concevoir un projet en termes de "représentation de ressources" plutôt que de "résultat de traitement" sans présager de la solution implémentée, puis d'explorer certaines implémentations du marché.
Travaux pratiques :
Les travaux pratiques couvrent les deux facettes de REST. Vous ferez donc une conception papier en mode REST : choix des URL, représentations, méthodes HTTP. Vous utiliserez Jersey et JAX-RS pour implémenter les services REST modélisés. Vous dépasserez une utilisation basique grâce à JAXB/JSON, à la personnalisation due au MessageBodyReader, à l'intégration d'ATOM, à la sécurisation des ressources en modification ou suppression et au Conditional Get.
Vous allez apprendre à :
- Connaître les principes sur lesquels repose REST
- Concevoir une application RESTFul
- Connaître les bonnes pratiques REST
- Maîtriser l'API JAX-RS
- Ecrire des clients pour les applications REST
- Comprendre les architectures orientées ressources
Méthode pédagogique :
60% de travaux pratiques
Audience :
Développeurs Java, chefs de projet, architectes techniques
Pré-requis :
- Expérience pratique du développement avec Java ou avoir suivi le cours JOD ou IJOP
Programme :
- Introduction à REST
- Les services Web
- Critique de SOAP et WS-*
- REST : un style d'architecture
- Les implémentations
- Comprendre REST
- Modélisation de données
- Identification de ressources
- Localisation de ressources
- Représentation d'une ressource
- Accès à une ressource
- Mise à jour de ressource
- Destruction d'une ressource
- Gestion d'erreurs
- Les principes de REST
- L'adressabilité des ressources
- Conventions d'actions
- Représentations multiples
- Style d'architecture sans état
- Le protocole HTTP
- Architecture en couches
- L'implémentation REST
- Performances
- Accès conditionnel aux ressources
- Configuration de la mise en cache
- Négociation de type de contenu
- Emulation de méthodes
- Implémentations actuelles
- Exposer une ressource avec JAX-RS
- Consommer une ressource REST
- Restlet
- RESTEasy
- Jersey