Dans ce TP, vous repartirez de l'application de back-office du chat en Spring Web MVC réalisée dans le TP précédent. Vous l'améliorerez pour faire en sorte que les objets métier de cette application soient gérés sous forme de ressources.
Remarque : l'authentification en REST étant un problème complexe, vous conserverez la méthode utilisée dans le TP précédent (cookies + Filter).
Logiquement, au TP précédent, vous avez transformé tous les objets manipulés côté serveur en ressources. Le travail qui doit déjà être fait est que les ressources exposées par votre application (utilisateurs, salons, messages), ont chacune une URI qui lui est propre et que le serveur renvoie une représentation de cette ressource à une requête vers cette URI. Pour cela, vous devez avoir :
À l'aide de la documentation indiquée dans la partie Références, étendez votre application pour qu'elle expose, en accord avec la sémantique des verbes HTTP, les ressources et les fonctionnalités suivantes :
Remarque : vous pouvez créer d'autres sous-ressources qui vous paraissent appropriées pour réaliser ces traitements.
Utilisez la doc située ici pour faire en sorte qu'en fonction des headers HTTP de la requête, votre serveur renvoie une représentation des ressources différente :
En utilisant un HandlerExceptionResolver, gérez différentes exceptions comme indiqué dans la documentation. Commentez votre code pour indiquer comment les obtenir lors de la correction.
Faites en sorte que les représentations de chaque ressource contiennent un maximum de liens explicites vers les ressources apparentées ; par exemple, la représentation du salon devrait contenir un lien (permalink) vers chaque message.
Par ailleurs lorsqu'une ressource a été créée, un lien doit être renvoyé dans (header HTTP location de la réponse), contenant l'URI de cette nouvelle ressource.
Vous pousserez une nouvelle version de votre projet sur la forge, avec les modifications demandées par le passage à REST de votre application Spring. Le dernier commit doit dater au plus tard du dimanche 2 décembre 2018 au soir.