Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
56% Positive
Analyzed from 452 words in the discussion.
Trending Topics
#rest#api#json#term#idea#urls#http#systems#level#didn
Discussion Sentiment
Analyzed from 452 words in the discussion.
Trending Topics
Discussion (10 Comments)Read Original on HackerNews
REST came along and tried to put some discipline around this. The URLs now mattered and had semantic meaning! All the self-describing hypertext stuff was interesting but largely ignored.
That one point - giving URLs noun-like semantics - led to the realization that the return mimetype could be anything. We could treat the website like a database and fetch raw information from it.
The only thing REST and JSON HTTP Apis have in common is that they agree URLs should have semantics. REST sorta opened peoples eyes to that fact... and the term was incorrectly adopted to describe everything that came after.
Many projects involve stringing together capability from different systems (via their api's) and creating essentially a new business layer on top of the combination of those systems. Now the abstract high level state is really managed by the new system and the component systems are just providing foundational capabilities.
The idea of HATEOS seems interesting but with limited application.
"REST" became associated with a good API design, so when people were told their API isn't a real REST, they interpreted it as having to implement more of Roy Fielding's vision to make it a really good API.
"Real REST must be self-describing hypermedia!" sounded like "you have to add more hyperlinks and delete your API docs", which of course didn't make any sense when you already had a thick RPC client (and RPC may have been the right architecture for the API).
"RESTful" was too similar to be a term for the opposite of the original REST, so it was too easy to interpret the issue as a technical criticism of "RESTful" being weak and falling short of fully-featured ideal "REST" rather than a terminology problem of the same term used for two valid but opposite architectural approaches.
The other term used at that time was AJAX ("async JS and XML"), which made even less sense for the "sync PHP and JSON" APIs (Node.js didn't exist yet).
RESTful to me is HTTP calls with PUT/PATCH/GET/DELETE and whatever else I am missing. The return doesn’t need to be json but needs to be structured so XML, JSON, etc
"Everyone stopped at Level 2 of the RMM"