Howdy! 👋
It’s Mixa with a bit different article this time. A fun-fact of a sort that I realized not many people are aware of. Here it goes:
I find this to be amusing for couple of reasons. For one - there’s an ever-going battle on what REST is and what is actually RESTful (i.e. “really in-line with REST idea”) and what is RESTish (i.e. “bad attempt at implementing REST”). Reasoning behind this is actually simple — REST was never written as a SPECIFICATION but more of a PROPOSAL and a THESIS on how stuff should be exposed via Internet and HTTP.
For two - it kind of shows you that sometimes even 20 years is not enough for something to become standardized. Dr. Fielding’s dissertation was published in year 2000 and yet even today, 23 years later, ask 10 people and you’ll get 10 different opinions on what REST really is. It’s just amusing.
There were attempts to actually agree on what really means for API to be RESTful, and one of those attempts is something called Richardson Maturity Model:
It was a 2008 effort by Leonard Richardson to actually figure out what it really means for API to comply with REST constraints. If you’re curious about the details, Martin Fowler has an amazing article on it.
One sad thing that still doesn’t get much credit, which I truly believe is due to the worst name in the history of anything, is HATEOAS. HATEOAS, mind the ugly name, is a really simple idea — APIs should be usable by computers as well and in order to do that, each API should expose hyperlinks to other resources that API exposes. Hence HATEOAS stands for Hypermedia As The Engine of Application State. Should it come as a surprise that given that we can’t even agree on what REST is, opinions and implementations of HATEOAS are even weirder. But more on that in some of the future articles.
And that’d be about it for today :) Hope you enjoyed it and possibly learned something new!