Representational State Transfer (REST)

Information Systems and the World Wide Web

International School of New Media
University of Lübeck

Erik Wilde, UC Berkeley School of Information
2007-01-03
Creative Commons License

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License.

Abstract

Representational State Transfer (REST) is an architectural style for building distributed systems. The WWW is an example for such a system. REST-style applications can be built using a wide variety of technologies. REST's main principles are that 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.

The Web as a System

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, The Emperor's Old Clothes, 1980 Turing Award Lecture

Outline (Technologies and Implementations)

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

Object-Orientation

Technologies are Tools

Implementations are Products

Outline (Web Services)

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

Web Servers

Web Distributed Authoring and Versioning (WebDAV)

Web Technologies

Outline (Service Oriented Architecture (SOA))

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

Services!

SOA Elements

SOA vs. REST

Outline (REST Principles)

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

Definition

Resources

State

Establishing a Common Model

REST Triangle

Nouns

Verbs

POSTing

Content Types

REST Claims

REST vs. Web Services

REST Tests

Outline (REST Implementation)

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

REST Technologies

URIs

HTTP

XML

Outline (Conclusions)

  1. Technologies and Implementations [3]
  2. Web Services [3]
  3. Service Oriented Architecture (SOA) [3]
  4. REST Principles [12]
  5. REST Implementation [4]
  6. Conclusions [1]

Better Services