How did REST come to mean the opposite of REST?
Because HATEOAS is stupid for client-server communication.<p>It mandates discoverability of resources, but no sane client will go around and request random server-provided urls to discover what is available.<p>On the other hand, it does not provide means to describe semantics of the resource properties, nor its data type or structure. So the client must have knowledge on the resources structure beforehand.<p>Under HATEOAS the client would need to associate the knowledge of resource structure with a particular resource received. A promising identifier for this association would be the resource collection path, i.e. the URL.<p>If the client needs to know the URLs, why have them in the response?<p>Other problems include creating new resource - how the client is supposed to know the structure of to-be created resource, if there is none yet? The client has nothing to request to discover the resource structure and associations.<p>Also hypertext does not map well to JSON. In JSON you can not differenciate between data and metadata (i.e. links to other resources). To accomodate, you need to wrap or nest the real data to make side-room for metadata. Then you get ugly and hard to work with JSON responses.
It maps pretty good to XML (i.e. metadata attributes or metadata namespace), but understandably nobody wants to work with XML.<p>And the list goes on and on.