11

I'm selecting a framework for restful service. Restlet looks promising. However, I'd like to pick something that's mainstream enough that it won't go out of support/development too soon. I know restlet has been around for quite some years. However, I'd like to know if it's popular enough. My questions are,

  1. Any big name companies using it?
  2. Is the default http server good enough for production?

thanks

user1923152
  • 121
  • 1
  • 2
  • 6
  • 1
    Are you talking about a language construct or about the general concept of using REST? In the former case, you're missing a language tag – John Dvorak Dec 22 '12 at 07:04

4 Answers4

26

The Restlet Framework has been available since 2005 when it was the first RESTful web framework for Java. It has support for the JAX-RS API, but its own Restlet API is both client and server-side since day one, much more comprehensive and extensible. We are free to innovate based on our community feed-back, without having to go through lengthy JCP standardization processes.

Also, we just published the 'Restlet in Action' book last September along with its version 2.1. Our internal connector is fully asynchronous and based on NIO and we are constantly stabilizing it even though it isn't ready for heavy productions yet (use the Jetty connector or a Java EE container with no change to your Restlet application).

Its consistent support for Java SE/EE, OSGi, Android, GAE and GWT with dedicated editions is unique. A port to JS (Node.js + AJAX) is also under way. We have also started work on version 2.2 with the first milestone being released (with full Java 6 support, OAuth 2.0 extension based on the final spec, etc.).

In term of references, we have many large companies using it including LinkedIn (see their GLU open source project), IBM, NVidia, ForgeRock, NASA, Sonatype, Apache Camel, Mule ESB, etc. Google has been using it internally as well. See some quotes here: http://restlet.com/discover/quotes

In January, we'll launch a new community web site as well as APISpark, an all-in-one platform to create, host, manage and use web APIs, directly based on Restlet Framework (PaaS), so the project is active and has an exciting future!

Best regards,

Jerome Louvel

PS: I'm the Restlet Framework creator and lead developer.

Jerome Louvel
  • 2,852
  • 14
  • 18
  • 2
    It's a bit old post, but I must say I've just discovered Restlet and I'm amazed how clean, well-thought and flexible it is. It definitely deserves to be more popular. – Red Nov 28 '13 at 19:42
  • Thanks a lot for your feed-back! – Jerome Louvel Jan 11 '14 at 17:44
3

The most mainstream you can get is Jersey. It is the official implementation of rest in java. Restlet came out before Jersey. But then Jersey surpassed them (in my humble opinion). I have used both Jersey and Restlet on serious projects. They are both good. However, you will find more support, more books, and more examples on Jersey.

kasavbere
  • 5,583
  • 9
  • 46
  • 71
  • 6
    That's true that we don't have the marketing power of Oracle, but technically speaking this has been a chance for the Restlet Framework, allowing us to innovate more freely (such as supporting Google technologies such as Android, GWT and GAE, which Jersey relunctanty does). We now have our own comprehensive 'Restlet in Action' book, and a few others cover Restlet, including O'Reilly bible: 'RESTful Web Services'. Also, I would be curious to know our Jersey is technically superior :) – Jerome Louvel Dec 23 '12 at 14:05
2

Is this about Java? In that case, JAX-RS is the awesome new API for doing this. The best book for this is Restful Java with JAX-RS. My favorite implementation of it is Jersey, but there are others with their own unique features. All JAX-RS implementations are compatible if you don't use their distinctive features (which are minor anyway). The book explains the core API, the REST philosophy, and also some of the features unique to the different implementations. It is an excellent book. I love the introduction, where the author relates how he was used to traditional remote procedure call (like SOAP, WCF, and ordinary OO semantics) but then saw the light of the REST principles as being simpler and more elegant.

I use Tomcat as the HTTP server (servlet container). It is lightweight and is what Amazon Beanstalk uses (you can just upload your application, the WAR file, to it and it just works). You can also use GlassFish which supports many more JavaEE features, or use Apache for static pages and other things, and forward the REST requests to Tomcat/GlassFish.

The annoying thing about JAX-RS is that it's so powerful and easy that you're tempted to write ideologically-sound REST services. Unfortunately, javascript can't use many of the REST features (setting Accept header, calling anything but GET/POST, etc.) But it's not a big deal.

Jersey also has a fantastic client-side Java API that mirrors JAX-RS and reuses the same annotated classes, if your clients will be Java.

bluish
  • 23,093
  • 23
  • 110
  • 171
Aleksandr Dubinsky
  • 19,357
  • 14
  • 64
  • 88
0

From the article

The Servlet API was released in 1998 and its core design hasn't significantly changed since that time. It is one of the most successful Java EE APIs, but it suffers from several design flaws and limitations. For example, the mapping between the URI patterns and the handlers is limited and centralized in one configuration file. Also, it gives control of the socket streams directly to the application developer, preventing some IO optimizations by the Servlet containers like the full usage of NIO features. Finally it does not support HTTP features like caching, content negotiation and content compression very well, causing too much pain to developers and preventing them to focus on their application specific code.

Another major concern was the lack of a modern HTTP client API in the Java EE stack. The JDK's HttpURLConnection class is hard to use and leaves too much HTTP features unsupported like expressing client preferences for content negotiation.

Frequently, people were relying on third-party HTTP client APIs to workaround those limitations. Again, NIO can't be supported with HttpURLConnection.

In 2005, I saw an opportunity to go beyond all those limitations, and to design a fresh API in the light of the REST principles. For the first time, we have an API that unifies client-side and server-side Web applications, an API that fully supports NIO and an API that lets the developer programmatically control its container, connectors and deployed applications without having to constantly rely on XML descriptors.

Rahul Tripathi
  • 152,732
  • 28
  • 233
  • 299