Skip to content

REST

REST defines architectural constraints for distributed interfaces. Resources, stateless requests and links are part of the approach.

Also known asRepresentational State Transfer
APIs and data contracts

Accessing resources through a uniform interface

REST stands for Representational State Transfer and names an architectural style. Applications exchange representations of resources, such as a project's current state. Its constraints include separating client and server, stateless requests, identifying whether responses can be cached and a uniform interface. Links in representations guide further possible steps; an HTTP address returning JSON alone does not meet these constraints.

In a fictional project portal, the application requests a project representation with GET /projects/P-42. It also contains a link to /projects/P-42/tasks, intended to provide access to the associated tasks. Both paths are our own design examples. The request must carry the information the server needs to understand it; the server should not need to reconstruct a previous conversation with this client. Project data can still be stored persistently. Stateless here describes communication, not the absence of a database.

An integration team therefore needs to examine how resources, links, permissions and the reuse of responses are actually governed. The REST label alone does not answer those questions.

Sources