REST defined, concisely

March 20, 2006 § Leave a comment

Hat tip to Sam Ruby for pointing me to Koranteng
Ofosu-Amaah
‘s recap of the “REST Elevator Pitch” as four brief
points:
? Identification Of Resources
? Manipulation Of Resources Through
Representations
? Self-Descriptive Messages
? Hypermedia As The Engine Of Application
State

[Read more] for a longer,
metaphor-laden excerpt from Koranteng’s Toli about the
“HUHXtable (?) quartet.”

In its most common
application, the pitch will lead you to the HUHXtable Quartet (HTTP / URI / HTML
/ XML) if we handwave away the additional content types that the web style
enables you to
negotiate….

The
thing is that each plank of the pitch brings its own benefits, benefits that
perhaps can accrue independently. Still you get the most bang for the buck at
the internet scale by the principled combination of all of
them…

The
importance of resource identification cannot be understated and it leads us to
the primacy of the
URI…

…manipulation
of resources through representations, is the bread and butter of HTTP, where we
have an evolving set of standard formats of hypermedia exchanged using a small
set of
verbs…

Unpacking
the HTTP proposition leads us to the four horsemen of the web: GET / POST / PUT
/ DELETE… you can do very well if you pick up only 2 of those verbs, GET and
POST…if you want to survive in the wild west of the web, you shouldn’t abuse
HTTP…

REST
is an architectural style which by principled design, is optimized to lower
coordination
costs…

Idempotency
is not just about safety however; in clearly signaling your intentions, it is
also about replayability… not just about the GET
method…

The
last two planks of the REST elevator pitch, self-descriptive messages, and
especially that last one, hypermedia as the engine of application state, are
attempts at addressing the issues of state, caching and evolving systems amongst
other things…almost all of these issues are important even if you aren’t
dealing with distributed
computing…

REST
also offers a couple of those very valuable system characteristics:
resilience
and
adaptability
,
almost as externalities…

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

What’s this?

You are currently reading REST defined, concisely at iHack, therefore iBlog.

meta

%d bloggers like this: