Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 27800774d3
Fetching contributors…

Cannot retrieve contributors at this time

90 lines (58 sloc) 2.969 kb
Web Services REST-Style: Universal Identifiers, Formats & Protocols
===================================================================
Agenda
- What's REST?
- Universal Identifiers, Formats & Protocols
- The Holy REST Trinity - Noun, Verbs, Types
- REST Design Principles
- Architecture Astronaut REST Speak
What's REST?
============
Representational State Transfer (REST) - Meaningless Acronym? Wordplay?
rest - n. - peace, ease, or refreshment resulting from the insight that the web works
No matter what vendors tell you - no need to "Light Up the Web" - relax - built on an **open architecture using universal identifiers, formats & protocols and _evolving_ open standards** - no need to reinvent the wheel and sign-up for single-vendor offerings.
### Broad Definition
- Best Practices for Designing Web Services for a Unified Human and Programable Web
### Narrow Definition
- Alternative to BigCo Web Services (SOAP, WS-STAR) and RPC-Style Web Services (XML-RPC)
### Resource, Representation, State, Transfer
- (Stateless) Resource Representation -> Open Format + Identifier e.g. HTML+URI
- Transfer Rules (Protocol) e.g. HTTP
Universal Identifiers, Formats & Protocols - The Holy Trinity
=============================================================
- Identifiers -> URLs (Uniform Resource Locator), URIs (Uniform Resource Identifier)
- Formats -> HTML (HyperText Markup Language), XML (Extensible Markup Language)
- Protocols -> HTTP (HyperText Transfer Protocol), AtomPub (Atom Publishing Protocol)
The Holy REST Trinity - Noun, Verbs, Types
==========================================
REST-Speak - Internet-Speak - Plain Old English
- Verbs -> Protocols -> Communication & Data Exchange Rules
- Nouns -> Identifiers -> Names, Addresses
- Types -> Formats -> Documents, Feeds, Photos, Videos, Music, etc.
Examples:
- Verbs -> HTTP GET, POST, PUT, DELETE
- Nouns -> `flickr.com/photos/tag/vancouver`, `deli.cio.us/vanajax/tag/libraries`, etcetera
- Types -> HTML, RSS, PNG, etcetera
REST Design Principles - What's REST?
=====================================
- Idenifiers Matter - Choose Great Names
- Open Formats Matter - Avoid Vendor Lock-In
- Protocols Matter - Learn more about HTTP and Use Best Practices
- Use HTTP GET for Read-Only/Side-Effect-Free Requests
- Use HTTP Accept Headers for Format Selection
- Use Full HTTP Method Vocabulary (GET, POST, PUT, DELETE)
More:
- No Web without Linking and No Linking without Identifiers!
- (Stateless) Resource Representation -> Open Format + Identifier e.g. HTML+URI
Architecture Astronaut REST Speak
=================================
- REST-y
- REST-ful
Or:
- Resource-Oriented Architecure (ROA)
- Web-Oriented Architecure (WOA)
Or:
- REST-RPC-Hybrid (Three Web Service Architectures):
- 1) REST
- 2) REST-RPC Hybrid
- 3) RPC (Remote Procedure Call)
Jump to Line
Something went wrong with that request. Please try again.