Representational State Transfer (REST) is an architectural style for creating, maintaining, retrieving, and deleting resources. REST's information-driven, resource-oriented approach to building Web services can both satisfy your software's users and make your life as a developer easier.
via javaworld.com
REST Introduction
- The father of REST, Roy Fielding, dissertation on "Architectural Styles and the Design of Network-based Software Architecture"
- Why REST?
- For more resources see REST Wiki, including the REST in plain English article.
Building REST Services
- RESTful Service
- Building Web services the REST way
- Build a RESTful Web service
REST related Design Issues
- Versioning REST services
- Common REST mistakes
- PUT or POST: the REST of the story, or see also the interesting interview with Elliotte Rusty Harold
- Asynchronous REST or Slow REST:
- Instead of returning a custom object we could use the Content-Location header for the in-progress status URI of the requested operation. This URI could also use headers to provide information regarding the in-progress operation:
- Status-Code: "202 in progress" or "204 No Content" when completed or any error code
- ETag: for the operation progress status. Could be strong and still give a notion of progress
REST for Java Developers (via javaworld.com)
- Part 1 - it's about the information, stupid
- Part 2 - Restlet for the weary
- Part 3 - NetKernel
- Part 4 - The future is RESTful
REST Libraries
- Notes:
- All of them are supporting JAX-RS, aka JSR-311, the Java API for RESTful Web Services
- And here is good presentation of JAX-RS
- Restlet project
This is my favorite library, and I like the fact that it is running on GAE/J and supporting GWT
- RESTEasy from JBoss.org
- Jersey part of Sun's GlassFish project
- CXF from Apache.org
- REST Libraries usage trend:

Via GoogleVolume.com
Tools
- RESTY is a simple cURL-based command line tool
- rest-client is a Java-based GUI and command line tool
- HTTP4E is an Eclipse HTTP client
Update 1: Added a libraries and tools sections.
Update 2: Added a section on design issues related to building REST services
Comments [0]