REST is acronym for Representational state transfer. It was defined in 2000 by Roy Fielding in his doctoral dissertation. System conforming REST constraints can be called RESTful and most the time is using protocol HTTP utilizing its methods GET, POST, PUT, DELETE, and sometimes more. Web service APIs that adhere to the REST architectural constraints are called RESTful APIs.
Architectural constraints:
- Client–server
- Stateless
- Cacheable
- Layered system
- Code on demand -optional (applets)
- Uniform interface
Identification of resources (URI)
Manipulation of resources through representations (JSON, XML, HTML, text, …)
Self-descriptive messages (application/json, text/html, … )
Hypermedia as the engine of application state (HATEOAS)