Restful APIs are everywhere. It’s the WAY to build client server systems and the panacea for scaling decoupled systems, or so they say. But is the concept of the RESTful API clear?
I know a lot has been written about it but most of it is either very large documentation or just shows best practices.
So I want to debunk some myths about what RESTful API’s are.
1. REST is a protocol like HTTP? ==> Incorrect, REST != HTTP
Let me explain in bullets
- REST stands for Representational State Transfer. It is a framework — this can get confusing again, what the hell is a framework. So think of REST as a SET OF CONSTRAINTS(we’ll get to what those constraints are) to build highly scalable fault-tolerant client server systems. The worldwide web is actually a great example(and the biggest, but again slightly flawed) of REST. It IS NOT A PROTOCOL. A protocol in web parlance is a communication interface or rules that define how components communicate on the interweb (from types of data to the interface types) HTTP is a protocol. Hence REST! = HTTP. But its the most used transport protocol with REST. You could as well use FTP or SMTP, but nobody likes those.