Representational State Transfer (REST)

Web Architecture [./]
Fall 2008 — INFO 290-03 (CCN 42584)

Erik Wilde, UC Berkeley School of Information
2008-09-23

Creative Commons License [http://creativecommons.org/licenses/by/3.0/]

This work is licensed under a CC
Attribution 3.0 Unported License
[http://creativecommons.org/licenses/by/3.0/]

Contents E. Wilde: Representational State Transfer (REST)

Contents

E. Wilde: Representational State Transfer (REST)

(2) Abstract

Representational State Transfer (REST) is an architectural style for building distributed systems. The Web is an example for such a system. REST-style applications can be built using a wide variety of technologies. REST's main principles are those of resource-oriented states and functionalities, the idea of a unique way of identifying resources, and the idea of how operations on these resources are defined in terms of a single protocol for interacting with resources. REST-oriented system design leads to systems which are open, scalable, extensible, and easy to understand.



E. Wilde: Representational State Transfer (REST)

(3) The Web as a System



E. Wilde: Representational State Transfer (REST)

(4) Web System Design

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

C. A. R. Hoare [http://en.wikipedia.org/wiki/Charles_Antony_Richard_Hoare], The Emperor's Old Clothes, 1980 Turing Award Lecture [http://dret.net/biblio/reference/hoa81]



Technologies and Implementations

Outline (Technologies and Implementations)

  1. Technologies and Implementations [3]
  2. REST Principles [9]
  3. REST Implementation [4]
  4. Conclusions [1]
Technologies and Implementations E. Wilde: Representational State Transfer (REST)

(6) Object-Orientation



Technologies and Implementations E. Wilde: Representational State Transfer (REST)

(7) Technologies are Tools



Technologies and Implementations E. Wilde: Representational State Transfer (REST)

(8) Implementations are Products



REST Principles

Outline (REST Principles)

  1. Technologies and Implementations [3]
  2. REST Principles [9]
  3. REST Implementation [4]
  4. Conclusions [1]
REST Principles E. Wilde: Representational State Transfer (REST)

(10) Definition



REST Principles E. Wilde: Representational State Transfer (REST)

(11) Resources



REST Principles E. Wilde: Representational State Transfer (REST)

(12) State



REST Principles E. Wilde: Representational State Transfer (REST)

(13) Establishing a Common Model



REST Principles E. Wilde: Representational State Transfer (REST)

(14) Nouns



REST Principles E. Wilde: Representational State Transfer (REST)

(15) Verbs



REST Principles E. Wilde: Representational State Transfer (REST)

(16) POSTing



REST Principles E. Wilde: Representational State Transfer (REST)

(17) Content Types



REST Principles E. Wilde: Representational State Transfer (REST)

(18) REST vs. Web Services



REST Implementation

Outline (REST Implementation)

  1. Technologies and Implementations [3]
  2. REST Principles [9]
  3. REST Implementation [4]
  4. Conclusions [1]
REST Implementation E. Wilde: Representational State Transfer (REST)

(20) REST Technologies



REST Implementation E. Wilde: Representational State Transfer (REST)

(21) URIs



REST Implementation E. Wilde: Representational State Transfer (REST)

(22) HTTP



REST Implementation E. Wilde: Representational State Transfer (REST)

(23) XML



Conclusions

Outline (Conclusions)

  1. Technologies and Implementations [3]
  2. REST Principles [9]
  3. REST Implementation [4]
  4. Conclusions [1]
Conclusions E. Wilde: Representational State Transfer (REST)

(25) Better Services



2008-09-23 Web Architecture [./]
Fall 2008 — INFO 290-03 (CCN 42584)