HTTP Methods for RESTful Web Services

Correct Representation of a RESTful Architecture:

/api/users     when called with GET, lists users/api/users     when called with POST, creates user record/api/users/1   when called with GET, shows user record               when called with PUT, updates user record               when called with DELETE, deletes user record

That is a correct representation of a RESTful architecture. You may find the following matrix from Wikipedia very helpful in defining your nouns and verbs:


When dealing with a Collection URI like: http://example.com/resources/

  • GET: List the members of the collection, complete with their member URIs for further navigation. For example, list all the cars for sale.
  • PUT: Meaning defined as “replace the entire collection with another collection”.
  • POST: Create a new entry in the collection where the ID is assigned automatically by the collection. The ID created is usually included as part of the data returned by this operation.
  • DELETE: Meaning defined as “delete the entire collection”.

When dealing with a Member URI like: http://example.com/resources/7HOU57Y

  • GET: Retrieve a representation of the addressed member of the collection expressed in an appropriate MIME type.
  • PUT: Update the addressed member of the collection or create it with the specified ID.
  • POST: Treats the addressed member as a collection in its own right and creates a new subordinate of it.
  • DELETE: Delete the addressed member of the collection.