Representational State Transfer


Representational State Transfer or REST is an architectural style that sets certain constraints for designing and building large-scale distributed hypermedia systems.

As an architectural style, Representational State Transfer has very broad application. The designs of both HTTP 1.1 and also URIs follow RESTful principles.

The World Wide Web is no doubt the largest and best known REST application. Many other web services also follow the REST architectural style. Examples include OAuth 2.0 and OpenID Connect 1.0.

Representational State Transfer objects are defined as addressable URIs, and are typically interacted with using the built-in verbs of HTTP — specifically, GET, PUT, DELETE, POST, etc.

Representational State Transfer Limitations[1]#

In Representational State Transfer, Hypermedia As The Engine Of Application State is an architecture constraint in which the client interacts with hypermedia links, rather than through a specific interface. With REST, the core concept is that everything is a resource. While REST was a great solution when it was first proposed, there are some pretty significant issues that the architecture suffers from.

REST’s defining feature is the ability to reference resources — the problem is when those resources are complicated and relational in a more complex organization known as a graph. Fetching these complicated graphs requires round trips between the client and server, and in some cases, repeated trips for network conditions and application types.

What this ultimately results in is a system where the more useful it is, the slower it is. In other words, as more relational data is presented, the REST system chokes on itself.


More Information#

There might be more information for this subject on one of the following: