• Also known as
  • REST/
  • RESTful

The Rep­re­sen­ta­tional State Trans­fer (REST) is an archi­tec­tural style for dis­trib­uted sys­tems. REST focuses on the nature and state of an appli­ca­tions' data and is some­times also referred to as REST­ful, REST-style or REST-com­pli­ant appli­ca­tion archi­tec­ture. It allows request­ing sys­tems (clients) to access and manip­u­late data on a REST­ful appli­ca­tion server.

A key aspect of REST is the abstrac­tion of data to resources and rep­re­sen­ta­tions. Any infor­ma­tion that can be named can be a resource: a doc­u­ment or image, a tem­po­ral ser­vice (e.g. "today's price of a share at New York Stock Exchange"), a col­lec­tion of other resources, a non-vir­tual object (e.g. a per­son), and so on. A rep­re­sen­ta­tion cap­tures the cur­rent or requested state of a resource.

The dif­fer­ent net­worked sys­tems exchange resource rep­re­sen­ta­tions with each other. For this pur­pose, every resource is uniquely address­able using a uni­form and min­i­mal set of com­mands and iden­ti­fiers. This hap­pens in a state­less client/server pro­to­col. For exam­ple, by using HTTP com­mands as GET, POST, PUT, or DELETE against a REST API.