APIs are consumed by humans first. Machines don't care about your structure.
HATEOS is the part that actually doesn't matter in practice.
APIs are consumed by humans first. Machines don't care about your structure.
HATEOS is the part that actually doesn't matter in practice.
The part for humans is the HTML form I'm typing on. Humans _can_ type in HTTP/1.1 non-chunked requests by hand, but I don't see it that often.
For developers, you might think that the URIs are "the UI" of an API, but they were not designed to be used in that way.
We were meant to use the HTML rel= attribute to inform our machine clients on how to navigate links. We still do, sometimes. rel=stylesheet is a vestigial trace of that. rel=nofollow still informs clients of irrelevant URLs to this day.
We use HATEOAS all the time, we're just not using the standards designed to express them. A complete API schema (what seems to be the cool thing these days), in the eyes of REST, is nothing but a giant complex hypermedia form written in an unspecified media type. The "blog_id" is nothing but a lofi link, and so on.