Summary
Jerome Louvel released Restlet 1.0, the first Java-specific REST API and its implementation.
Advertisement
Jerome Louvel started the Restlet project in 2005 because, as he remarked in an interview with Artima:
I noted the lack of a REST framework in Java, and that led me to develop my own REST framework on top of the Servlet API. This worked well up to a point where the Servlet API was completely hidden. [Then] I decided to completely bypass the Servlet API. Fortunately, Jetty has a nice separation between its HTTP protocol implementation and its support for the Servlet API. In the end, I was able to develop the first Restlet connector, an HTTP server connector, directly issuing REST uniform calls.
The Restlet framework is both an API and an implementation of that API, a separation comparable to the Servlet API and its implementations, such as Tomcat:
We don’t want to build another framework that will lock you in their implementation. Currently, there is only one implementation, the Noelios Restlet Engine, but other organizations and companies are welcome to develop their own. The API is freely available under the CDDL license, even for commercial usage.
The Restlet API is not related to JSR 311, JAX-RS: The Java API for RESTful Web Services, although Louvel is part of the JSR 311 expert group and the Restlet API project is expected to significantly influence the eventual JSR 311 API. (One notable difference is that Restlet supports both client and server-side models, whereas the JSR 311 API so far is aimed only for the server side.)
Development versions of the Restlet implementation have already been in use on various production projects, according to Louvel:
Several applications are already deployed in production within organizations of various sizes, including Overstock.com, an Internet leader for brand names at clearance prices. The Restlet project is also used as a support technology for various software architecture classes covering the REST architecture style, for example at University of California Irvine, or at the INSA Rouen engineering school.
What do you think of the Restlet API and of the JSR 311 Restful Web services proposal?
Regarding Restlet API and JSR-311, I would like to underline that both efforts are complementary. JSR-311 will define an annotation-centric way to expose POJOs as server-side RESTful Web Resources, while the Restlet API has a class-centric approach with a much broader scope.
Like there will be Servlet-based implementations of the JSR-311 API, we will also provide a Restlet-based implementation (which we expect to be straightforward BTW).
I've been working with Restlet for about 1/2 a year and I've found it to be very powerful and easy to use. It fulfills one of the REST goals of unifying web applications and web services in an elegant and simple way.
I appreciate the direct way Restlet maps REST Architectural Style to Java. At the same time, this is a very practical framework that doesn't force you to accept dogmatic views of some RESTafarians.
The community is very good and the committers are very responsive. Jerome and Theirry are committed to doing the right thing, which is refreshing.