Representational State Transfer (REST)

Mobile Application Design and Development [./]
Spring 2010 — INFO 152 (CCN 42504)

Erik Wilde, UC Berkeley School of Information
2010-03-10

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 Erik Wilde: Representational State Transfer (REST)

Contents

Erik 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.



Erik Wilde: Representational State Transfer (REST)

(3) The Web as a System



Erik 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 Erik Wilde: Representational State Transfer (REST)

(6) Object-Orientation



Technologies and Implementations Erik Wilde: Representational State Transfer (REST)

(7) Technologies are Tools



Technologies and Implementations Erik 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 Erik Wilde: Representational State Transfer (REST)

(10) Definition



REST Principles Erik Wilde: Representational State Transfer (REST)

(11) Resources



REST Principles Erik Wilde: Representational State Transfer (REST)

(12) State



REST Principles Erik Wilde: Representational State Transfer (REST)

(13) Establishing a Common Model



REST Principles Erik Wilde: Representational State Transfer (REST)

(14) Nouns



REST Principles Erik Wilde: Representational State Transfer (REST)

(15) Verbs



REST Principles Erik Wilde: Representational State Transfer (REST)

(16) POSTing



REST Principles Erik Wilde: Representational State Transfer (REST)

(17) Content Types



REST Principles Erik 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 Erik Wilde: Representational State Transfer (REST)

(20) REST Technologies



REST Implementation Erik Wilde: Representational State Transfer (REST)

(21) URIs



REST Implementation Erik Wilde: Representational State Transfer (REST)

(22) HTTP



REST Implementation Erik 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 Erik Wilde: Representational State Transfer (REST)

(25) Better Services



2010-03-10 Mobile Application Design and Development [./]
Spring 2010 — INFO 152 (CCN 42504)