Designing and Implementing RESTful Web Services with Spring (with HATEOAS)