Talk:HATEOAS

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Origin / merge discussion[edit]

Perhaps this should be merged into the REST article?

I don't know who wrote the above, but personally I don't agree. However, it should be noted somewhere that the concept is not mentioned in Fielding's thesis. It never occurs at all. After reading the thesis and the article I have no idea where it came from. It's not mentioned in the blog posting referred to, either. --LarsMarius (talk) 21:32, 20 May 2011 (UTC)[reply]

The blog post says "What needs to be done to make the REST architectural style clear on the notion that hypertext is a constraint? In other words, if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. Is there some broken manual somewhere that needs to be fixed?" - ok it doesnt use the acronym, but seems pretty clear. I wouldnt have any objection to a merge into REST. Justinc (talk) 11:22, 21 May 2011 (UTC)[reply]
I added a ref to the origin in the Fielding dissertation. HATEOAS itself is never mentioned, but hypermedia as the engine of application state appears on page 82. Avindratalk 20:14, 5 September 2023 (UTC)[reply]

Link relations that make up a fixed interface[edit]

"In this way, RESTful interaction is driven by hypermedia, rather than out-of-band information." The source used to support this statement allows "spend[ing] descriptive effort [...] in defining extended relation names". But wouldn't a set of such "extended relation names" make up "a fixed interface shared through documentation", which the lead says is characteristic of a service-oriented architecture? --Damian Yerrick (talk | stalk) 15:28, 11 July 2012 (UTC)[reply]

No; Fielding is saying that REST APIs should present navigational / interface disclosure interactively, and exclusively in-band. A good term paper is self-explanatory, and doesn't need an accompanying oral presentation; a good website explicitly and contextually provides links and functionality to the user, without requiring a separate reference guide. So it is for a HATEOAS-constrained REST API; otherwise you're just using an RPC with an HTTP wrapper. (RPCs, in contrast, are very particular in their usage, and if you don't know exactly what you're doing, you're not going anywhere; hence the documentation.) Razordaze (talk) 22:58, 13 September 2015 (UTC)[reply]

2 Cents from some one else -- — Preceding unsigned comment added by 24.22.50.89 (talk) 01:35, 12 January 2014 (UTC) This article appears to bogus. It has next to no sources and does not seem to relate to topics discussed in single referenced source. If their was a mark this as spam article I would.[reply]

Verb based resources?[edit]

The <link> resource names are verbs. This is counter to RESTful guidelines, is it not? -> Yes, in my opinion this page is corrupted. REST is about resources and not about operations. 2001:8D8:1FE:700:0:0:1:3 (talk) 16:41, 10 June 2015 (UTC)[reply]

<link> in this context is not a verb, it's just markup to denote an existing location (noun). The server isn't doing anything when it provides that information; it's not related to the LINK / UNLINK HTTP methods of RFC2068. Here's another source that explains HATEOAS a bit more clearly: http://blog.codecentric.de/en/2012/11/a-restful-learning-curve-nouns-verbs-hateoas-and-roca/ Razordaze (talk) 23:16, 13 September 2015 (UTC)[reply]
The original point still stands (it wasn't about "link" at all, and the point is backed up by the linked article. "close" in "/accounts/12345/close" is not a noun but a verb, and "deposit" in ""/accounts/12345/deposit" is a verb not a noun, unlike "deposits" in "/accounts/12345/deposits". REST being about resources, nouns, not actions, verbs.
https://htmx.org/essays/hateoas/ would agree 81.187.169.133 (talk) 16:17, 22 April 2022 (UTC)[reply]

Pronunciation[edit]

How is HATEOAS supposed to be pronounced? I always pronounced it HATE-O-AS but I think it should be HAT-E-OAS (rhymes with Adiós?). Found https://www.howtopronounce.com/hateoas/

I don't know but I think it's probably the weirdest looking acronym I've seen. It sounds like Cheerios except with hate instead of cheer. :D — Preceding unsigned comment added by 205.172.134.23 (talk) 20:17, 21 August 2015 (UTC)[reply]
I think both HAT-E-OAS and HATE-E-OAS are acceptable pronunciations. I've heard both repeatedly over the years. In fact, at the API Strategy Conference a few weeks ago, I won a box of "Honey Nut HATEOAS" in a contest. There's a picture on my post here: http://clarify.io/blog/api-strategy-conference-2015-recap/ Either way, that makes it an acronym instead of an abbreviation. Caseydk (talk) 07:13, 8 December 2015 (UTC)[reply]
if so better would be citing both (I agree it would be useful) Lrkwz (talk) 23:44, 1 March 2023 (UTC)[reply]

Origin[edit]

Who came up with the acronym - it clearly wasn't necessary to preface it with the word HATE. The minter of that one clearly doesn't realize that the powerfully negative suggestion it carries will kill it dead as people strive to avoid it instinctively. Slashdottir (talk) 17:29, 13 February 2016 (UTC)[reply]

That cheered me up, thanks! :) 92.2.131.104 (talk) 09:36, 13 July 2018 (UTC)[reply]
See first discussion on origin. Here are additional links which provide more context:
The remaining issue: it's not clear when *HATEOAS* acronym was made. Avindratalk 20:42, 5 September 2023 (UTC)[reply]

The example is a JSON API, not really HATEOAS[edit]

I may be putting my hand into a wasp-nest here, but I have been reading a lot about the original intent of Hypermedia and HTML. What spurred this was the rapid growth of HTMX (currently in draft Draft:HTMX) which to a large extent takes us back to the roots of HATEOAS and Hypermedia. There are a lot of people who are more knowledgeable about HATEOAS than me, so I am reluctant to change the example unless other people agree that it is not HATEOAS, it is just a JSON API with some (but not all) of the characteristics of HATEOAS. There is a really good example of good HATEOAS here https://htmx.org/essays/hateoas/

HTTP/1.1 200 OK

<html>
  <body>
    <div>Account number: 12345</div>
    <div>Balance: $100.00 USD</div>
    <div>Links:
        <a href="/accounts/12345/deposits">deposits</a>
        <a href="/accounts/12345/withdrawals">withdrawals</a>
        <a href="/accounts/12345/transfers">transfers</a>
        <a href="/accounts/12345/close-requests">close-requests</a>
    </div>
  <body>
</html>

Do you agree? --CaliViking (talk) 20:49, 21 January 2024 (UTC)[reply]