The same arguments were made about object orientation: I&#x27;ve never needed it, it&#x27;s useless baggage with no real world benefits, it sounds great in theory but has no practical use...<p>I&#x27;ve built hypertext APIs, and they worked really well.<p>We had a(n overly) complex domain model where most of the complexity was around managing a permissions model for access to resources. We tried a whole bunch of ways to represent the actions available to end users, but the only one that worked <i>really</i> well was to advertise a URI when you could do something, and to omit it when you couldn&#x27;t.<p>All the nightmarish logic was safely hidden behind the uniform interface. Clients only needed to know that they should follow links, and that the absence of a link meant that a resource wasn&#x27;t available to them because reasons. It was a beautifully natural mapping of a difficult problem domain into a simple consumption model.<p>As a bonus, we could change URI structures around when we felt like it, and our clients never missed a beat, because they always followed links from a well-known entry point.<p>It&#x27;s not <i>always</i> the right choice, there is plenty of room for simple RPC, but for workflows, and dynamic discovery of resources ReST works a treat.