How RESTful Are Web Frameworks That Claim REST Support?
There are plenty of web services platforms/application frameworks available today that support RESTful services to varying degrees. In a recent post Stefan Tilkov puts out a list of criteria that serves as a starting point in evaluating these frameworks and platforms.
He Proposes that, at a high level, the questions one must ask are are (the more “yes”s for the answers the closer a framework is to an ideal REST web application framework).
- Does the framework respect that an HTTP message does not only consist of a URI? I.e., is dispatch done at least based on the HTTP verb, the URI, the Content-type and Accept headers?
- Can I easily use the same business logic while returning different content types in the response?
- Is there support for checking for conditional requests?
- Are ETags calculated automatically if none are set by the backend logic?
- Can I (as a framework user) easily read all HTTP request headers?
- Can I easily set all HTTP response headers?
- Can I use custom HTTP verbs?
- Is it obvious and easy how to return correct status codes with responses, and does the framework use them correctly (if it does so at all)?
Mike Amundsen suggests additions to the REST Litmus Test for Web Frameworks list, He suggests that the various components of a URI the path and the query string, carry the same weight to distinguish a resource from another. He quotes Roy T. Fielding on REST-Discuss, 2002,
[F]or server-constructed URI, there is no effective difference between query and path info -- both distinguish a resource.
A few prominent web frameworks that support developing RESTful services are:
Java
.net
Ruby
Python
Do add your comments so we can maintain an updated list of frameworks and platforms for building RESTful services. Be sure to visit the original post for details.
Same initiative
by
Alex Popescu
- JAX-RS implementations
- webmachine (Erlang/Basho)
While I'm not very familiar with either Django and Ruby on Rails, as far as I know both of them will have problems with at least the 1st test (and I think Django is not passing the 2nd test either, as it is more of an action based framework).
:- alex
Re: Same initiative
by
James Watson
Apache CXF
by
David Karr
What about HATEOS?
by
Michael Pilone
For example, look at something like the Netflix API which appears to support HATEOS very well. I'm assuming they implemented a lot of custom code internally to get that behavior.
-mike
Re: What about HATEOS?
by
James Watson
restfulie.caelum.com.br/restful_java
RESTx
by
Ross Mason
It is still early days for the project but would love to get your feedback on it.
Ross (at mulesoft dot com)
Re: What about HATEOS?
by
Juergen Brendel
Re: What about HATEOS?
by
Julian Browne
I'm interested in seeing how they approach this but something went wrong. They are sorry.
restfulie.caelum.com.br/restful_java
Though, to be fair, they will take a look at it shortly.
Re: Spring MVC's REST Capabilities
by
Keith Donald
blog.springsource.com/2010/07/22/spring-mvc-3-s...
Keith
Educational Content
Managing Build Jobs for Continuous Delivery
Martin Peston May 24, 2013
Clojure in the Field
Stuart Halloway May 23, 2013
Tuning the Size of Your Thread Pool
Kirk Pepperdine May 23, 2013




Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think