More explanation
Among all the available methods, GET is the most popular one, as it is used to fetch the resource.
The HEAD method will only return the response headers with an empty body. This is mostly only required when we don't need the whole representation of the resource.
The OPTIONS method is used to get a list of the allowed or available operations on the resource.
Consider the following request:
OPTIONS http://packtservice.com/Authors/1 HTTP/1.1 HOST: packtservice
If the request is authorized and authenticated, it might return something like the following:
200 OK Allow: HEAD, GET, PUT
The response is actually saying that the service can be called using only all these methods.
Make sure you use the HTTP methods according to their specification. If you design the service to allow GET, but perform a delete operation inside that, then clients will get confused. As they try to GET something, it will actually delete the resource, which is weird.
The following is a request that is made with GET, but it actually deletes the resource inside the server (just imagine):
GET http://packtservice.com/DeleteAuthor/1 HTTP/1.1 HOST: packtservice
The preceding request might work and delete the resource, but this is not regarded as a RESTful design. The recommended operation would be to use DELETE method to delete a resource like the following:
DELETE http://packtservice.com/Authors/1 HTTP/1.1 HOST: packtservice