As a followup to my previous post, I now turn to RESTful web services. I originally encountered the term when attending php|tropics in 2005, where George Schlossnaggle likened it to simple GET and POST requests. Since then, the architectural style — and developer understanding of the architectural style — has improved a bit, and a more solid definition can be made.
At its heart, REST simply dictates that a given resource have a unique address, and that you interact with that resource using HTTP verbs. The standard verbs utilized are:
- GET: retrieve a list of resources, or, if an identifier is present, view a single resource
- POST: create a new resource with the data provided in the POST
- PUT: update an existing resource as specified by an identifier, using the PUT data
- DELETE: delete an existing resource as specified by an identifier