Lawrence Wagerfield Fragmenting The Heap Since 2000

30May/100

REST Principles

This article composes various findings from technical papers, journals, books and of course Fielding's original dissertation: Architectural Styles and the Design of Network-based Software Architectures.

Some aspects of this article are perhaps a little vague, but should hopefully provide a good starting point to those learning REST. I'd strongly recommend Fielding's dissertation and 'RESTful Web Services' by Richardson & Ruby; the former is essential for anyone serious about the topic.

Introduction

Representational State Transfer (REST) is an architectural style which was introduced in 2000 by Roy Fielding as part of his doctoral dissertation. The paper was written as a description of what made the Web successful, and identifies that the Web's basic technologies generally suffice for distributed computing.

REST advocates a set of ideals for developing resource-oriented architectures (ROAs) and therefore exists as a contrast to concrete remote-procedure-call (RPC) specifications like WS-* and CORBA.

The chief principle of REST is to use the Web's core features and to avoid implementing any custom extensions. The following 8 principles simply reiterate this statement at a more granular level. Hi-REST APIs strictly conform to each of these principles, whereas Lo-REST APIs will only consider a few:

  1. Resources
  2. Representations
  3. Addressability
  4. Statelessness
  5. Descriptive URIs
  6. Hypermedia and HATEOAS
  7. Safety and Idempotence
  8. Interface Unity

Note: The term 'RESTful' can be used to describe any number of applications and protocols, primarily due to the broad scope of Fielding's REST dissertation. To prevent ambiguity this article will use the term 'REST API' to describe RESTful HTTP web services which are intended primarily, although not explicitly, for machine consumption.

Filed under: REST Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.