What if the web were not RESTful?

  • Authors:
  • Cornelia Davis

  • Affiliations:
  • EMC Corporation, Santa Barbara, CA

  • Venue:
  • Proceedings of the Third International Workshop on RESTful Design
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

So-called RESTful services are in widespread use both on the Web, and increasingly, in large enterprises. We say "so-called" because in reality, most of these services are not very RESTful. Those active in the REST community know well where these interfaces fail to meet REST principles, however, true understanding remains only in this relatively small community. Unfortunately, the result is a set of interfaces that are ultimately limited in their use, and the deficiencies are not usually recognized until it is too late to make the necessary changes. Our experience has shown that individuals are not being deliberately neglectful, rather, they simply do not know what they do not know. Everyone thinks they "get REST", after all, using HTTP to move XML or JSON payloads over the network is very simple. We have found that most individuals begin to understand the nuances of REST when they are explained and they almost always ask for resources that further explain these concepts. Certainly, materials are available, however the best ones are rather substantial in size lessening the chance that many people will read them. In this paper we take a fresh approach to explaining the core principles of REST, by describing a World Wide Web that fails to meet these tenets. We look at each key element, resource orientation, the uniform interface, media types and hyperlinking, and imagine the consequences of not abiding by the REST architectural style on the end user or tools developer of the Web. We then do a similar analysis in the context of Web services and programmatic consumers, reexamining each REST characteristic, describing common mistakes and suggesting improvements. We have found that in discussions, the analogy of the World Wide Web has been very effective at explaining REST.