Understanding REST and APIs

REST, or Representational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. It was first defined in 2000 by Roy Fielding in his doctoral dissertation. By adhering to a specific set of constraints, a RESTFUL-API allows for scalable and independent evolution of components.

A REST architecture relies on a stateless, CLIENT-SERVER communication protocol, almost exclusively HTTP. In this model, every RESOURCE is identified by a URI (Uniform Resource Identifier). The manipulation of these resources is performed through standard HTTP-METHODS such as GET, POST, PUT, and DELETE, which map directly to CRUD operations. One of the most critical constraints is STATELESSNESS, meaning the server does not store any client context between requests.

Data exchange in modern WEB-SERVICES typically utilizes JSON (JavaScript Object Notation) due to its lightweight nature, although XML is also supported. Another concept often discussed within this framework is HATEOAS (Hypermedia as the Engine of Application State), which allows a client to interact with a network application entirely through hypermedia provided dynamically by the server. For further reading, see the original dissertation by Roy Fielding or the MDN Web Docs definition of REST.