REST is an acronym that stands for REpresentational State Transfer. It is an architectural style or design pattern, not a standard. The idea is that HTTP is not just the transport for a web service; it is the web service.

Messages that are exchanged between a client and a REST web service can be in any format, such as XML or JSON. As you can see in Figure 5-6 on page 95, the web service message is sent without a defined contract. The message is “self-describing”. It is the responsibility of the software application to decipher the request.

Diagram of a rest-based web services request

With REST, each resource/object that is exposed to the web has its own logical URL for accessing it. (The web server maps the URL to the object so that each object does not need its own static page or predefined URL.) HTTP protocol methods are used to denote the invocation of different operations for typical (create, retrieve, update, and delete) operations:

  • POST: Create a resource.
  • GET: Retrieve a resource.
  • PUT: Update a resource.
  • DELETE: Delete a resource.

Web services that are based on REST are resource-oriented rather than activity-oriented (that is, everything is a resource and resources are the center of attention). In addition, the web is used as the programming platform.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}