Skip to content

Instantly share code, notes, and snippets.

@steveklabnik
Created March 9, 2012 01:54
Show Gist options
  • Save steveklabnik/2004584 to your computer and use it in GitHub Desktop.
Save steveklabnik/2004584 to your computer and use it in GitHub Desktop.
Hypermedia benefits in plain language
Hypermedia designs scale better, are more easily changed and promote decoupling
and encapsulation, with all the benefits those things bring. On the downside,
it is not necessarily the most latency-tolerant design, and caches can get stale
if you're not careful. It may not be as efficient on an individual request level
as other designs.
@jxson
Copy link

jxson commented Mar 9, 2012

Consumers/ clients of these kinds of APIs also have to do a little extra work; doing discovery, making sure media types line up with the requests, etc.

@steveklabnik
Copy link
Author

Hrm, yes. This paragraph came out of doing several rounds of reductions on Section 5.1 of Fielding's thesis, and he makes no mention of tehse kinds of things. I'm not sure where that kind of thing fits in, but I'll think about it.

I've found that doing that work is actually less work than the usual 'duplicate business processes, format URLs, etc' work that RESTful (:wink:) clients have to do.

@jxson
Copy link

jxson commented Mar 9, 2012

I agree on it being less work in the long run.

It does seem to catch devs (who are unfamiliar with the benefits of Hypermedia) off guard when they are implementing the code to interact with a discoverable API, they sometimes really badly just want to hard code urls directly into their code etc.

@telemachus
Copy link

Hypermedia designs promote scalability, allow resilience towards future changes, and promotes (should be 'promote')

"Hypermedia designs scale better, are more easily changed and promote..."

You may not love my exact wording (I'm not crazy about the "are more easily changed"), but I'm not crazy about "allow resilience towards". I want more verbs and less nouns. :)

@steveklabnik
Copy link
Author

@telemachus yeah, I agree it's awkward. I think I like your wording. More revisions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment