Is RAML anti-REST?


REST is clearly not URL driven yet all RAML docs seem to be URL-centric. REST is about resources, link-relationships and hypermedia.


Short answer: no.

Longer answer: read this thread.


@sujitdmello I fully agree to you that RESTful services are all about hypermedia in it’s highest/best form and RAML should support linking resources additionally as well in the future. However it’s not always about going the hypermedia route as it fully depends on each use case where you might not need hypermedia. And YES it might not be a RESTful services by definition, but you might calling it RESTless or anything else. I’ve heard so many permutation of the term REST, that I think it really is an ethical discussion about what it is and what it isn’t. You see that in @ddossot long answer.

At the moment, RAML helps you with a certain set of use cases without giving you language tools to link resources which might be enough for your specific needs (talking about “level 2”). However, you can still use RAML to spec out a hypermedia ready API

In summary, I agree with you that in the highest degree REST is about hypermedia linking resources etc., but it is not always the ultimate answer for everything IMHO.


One of the problems is a difference in terminology. There is not such thing as “highest degree REST” or any other adjectives prepended onto “REST”, there is only “REST”.

Below is one of Roy’s comments from

“Andrew, there is no such thing as “Common REST” (nor, for that matter, the alternative declarations of “Low REST” and “High REST”). There is just REST. The problem is that various people have described “I am using HTTP” as some sort of style in itself and then used the REST moniker for branding (or excuses) even when they haven’t the slightest idea what it means. The only way to stop people from misusing the term is to make a negative example of them when they do.”

Since Roy coined the term “REST” I’m using him as the authority. If you’re not following his definition of “REST” then call it something else, preferably without the term “REST” in it.



Would you mind that we move this discussion to the existing channel about RAML and HATEOAS? Maybe you can express some ideas how to enable this in RAML. It would be great to hear your thoughts.