RESTing easy
One of the greatest challenges of the Internet age has always been to make networked services talk to each other in a uniform and efficient manner. It is the reason behind why we have developed a plethora of communications protocols that we depend on today, such as the all-important TCP/IP stack. Protocols like these make formal communication between applications a straightforward process, at least as far as the actual bytes on the wire are concerned.
However, there is no single de facto specification for how applications should communicate data abstractions to each other. Raw TCP/IP only understands the exchange of data packets; it knows nothing about abstractions such as customers, orders or products. To raise the abstraction level and build an interface that allows intuitive communication with our backend, we will have to rely on a custom implementation of one or more architectural patterns in order to get what we want. Today, there are several such patterns in wide usage...