RESTful web services are becoming more and more popular as more and more developers understand the resource model techniques. Behind RESTful web services is the REST architecture style, which is not as well known or understood. This post is aimed to demystify some of the principles behind the REST architecture style.
Here is a list of 10 things about REST.
- REST is a obscure acronym. Whether you like it or not, it stands for Representational State Transfer
- REST is an architecture style for distributed hypermedia system that emphasizes minimizing latency and maximizing scalability
- REST is Roy Fielding’s doctoral dissertation in 2000
- REST architecture style has many elements and among them are:
- Client-server
- Stateless communication
- Caching
- Uniform interface
- Layered system
- The key information abstraction in REST is a resource, which is identified by a resource identifier
- The information being transferred between client and server is the representation of a resource
- Comparing REST to SOAP is like comparing apples to oranges. It is more appropriate to compare REST to SOA
- REST is about exposing your application as a big state machine through standard HTTP network protocol
- REST architecture style borrows many proven software design techniques from other fields like client server, distributed system and network protocol.
- REST is simpler and more beautiful
The next time someones asks you what REST is, hopefully the above 10 items can help guiding you in providing an intelligent and clear answer. If there is a desire to gain deeper understanding and more details about REST, a great resource would be Roy Fielding’s dissertation.
Posted by fantastic