BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News How RESTful Are Web Frameworks That Claim REST Support?

How RESTful Are Web Frameworks That Claim REST Support?

This item in japanese

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.

Rate this Article

Adoption
Style

BT