Why REST services
A REST-based service is best suited for limited bandwidth and resources where you need to process simple Create, Read, Update, Delete (CRUD) type operations using the following verbs:
GET
POST
PUT
DELETE
Also, REST is a platform and language independent service, which makes it ideal as an integration protocol.
It uses a lightweight protocol such as HTTP to send messages in a simple XML format, or other formats such as JSON or plain text. TCP may also be used, but HTTP is more commonly used.
REST services are totally stateless in operation. This allows greater scalability since the server does not have to maintain the session state. What this essentially means is that the client must include all the information required for the server to fulfill each request.
For a comparison between messaging based on SOAP and REST, please refer to the blog post at http://connectedcircuits.wordpress.com/2013/02/16/what-to-use-soap-or-rest/.
A RESTful API should adhere to the following specifications...