Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Oooh religion, I like it :D
Is it REST if it doesn't implement HATEOAS?
Emphiliis200169dBy so far I have not used a single 'Rest' api that fully implements rest completely or correct.. Most Devs are lazy, implement what they need and call it 'RESTful' or 'RESTlike'. Meh.
Also, management often says 'don't waste time in that, we'll do it later'. Ofc it will never be done.
In fairness, REST came before HATEOAS, so I think it's completely valid labelling something a rest API if it doesn't conform to that.
I do much prefer proper, HATEOAS compliant REST APIs however.
@AlmondSauce every part of that statement is incorrect. REST was designed with 5 core constraints, one of them is Uniformity of the interface.
And part of that is HATEOAS.
Now when one thing is defined to be a set with mandatory elements, taking away one element makes it "not that thing", but some other thing.
Otherwise you are just using words that have one meaning to describe a different thing, creating confusion.
Now, this is true for standards and human constructs, is not true for natural occurring things, like a human, a human with one kidney is still a human, a human with no liver is a dead human.
Rest without HATEOAS is not rest.
Is just an HTTP API.
@AlmondSauce maybe I overreacted a bit. And when I asked for references I was truly honest about that.
There's nothing wrong with saying that you are building your app using some concepts of the REST architecture or calling it REST like.
The problem arises when we stop clarifying that it is a partial implemention of REST. Because we stop learning and we marry with an improper definition.
Now I'm going to speculate, I suspect that, if we truly had the habit of implementing REST we would discover by ourselves how to design DSLs that improve the underlying language we are working to bring it closer to the problem domain of our application.
By saying it is REST, we limit ourselves, we leave a whole domain of programming unexplored and unknown, I'm guilty of cutting corners in the same way in the past, maybe I should try to polish this idea.
Apologies for the tone in the previous comment.