Designing and building a really clean and intuitive REST API is no small feat. You have to worry about resources, collections of resources, pagination, query parameters, references to other resources, which HTTP methods to use, HTTP caching, security, and more. And you have to make sure it lasts and doesn’t break clients as you add features over time. Furthermore, although there are many references on creating REST APIs with XML, there are far fewer references on REST + JSON. It is enough to drive you crazy. This session demonstrates how to design and implement an elegant REST API using JAX-RS and Jersey.

You can find the sample application here: https://github.com/stormpath/todos-jersey

Presented by Les Hazlewood at JavaOne 2012