You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

In our What is REST? article we focused on a few of the important constraints of REST that are relevant to the SRP HTTP Framework. When discussing the Uniform Interface constraint, we provided an introduction to the concept of Hypermedia As The Engine Of Application State (or HATEOAS for short). In our summary of the concept of HATEOAS, we emphasized its importance but suggested the reader visit this present page to understand why HATEOAS is important.

To be fair, there are plenty of people who appreciate REST in some respects, but ultimately do not see the significance or value of HATEOAS. This approach to RESTful APIs is often referred to as pragmatic REST. RESTful APIs that emphasize HATEOAS is sometimes referred to as purist REST (perhaps derisively by non-purist developers). This article from Ben Morris represents a well reasoned argument against the necessity of HATEOAS, although we suggest that in some ways it indirectly advocates the need to engage HATEOAS. Our intent is not to debate the subject or pick apart any arguments against HATEOAS. Rather, we prefer to just outline our case for HATEOAS so each developer can make up their own mind. The important part is for a developer to decide early on whether or not HATEOAS will be a normal part of the API. This is why the SRP HTTP Framework does not enforce HATEOAS implementation but it does provide tools to implement HATEOAS relatively easy.

It is important to define our terms and demonstrate our concepts in order to illustrate the importance of HATEOAS. We'll do this by looking at the major items in HATEOAS: Hypermedia, Engine, and Application State.

Hypermedia


Engine


Application State

  • No labels