Difference between revisions of "rest/urls"

From Microformats Wiki
Jump to navigation Jump to search
(headers)
(custom actions)
Line 8: Line 8:
 
;GET /people: return a list of all records
 
;GET /people: return a list of all records
 
;GET /people/new: return a form for creating a new record
 
;GET /people/new: return a form for creating a new record
;POST /people: submit a form for creating a new record
+
;POST /people: submit fields for creating a new record
  
 
== Operate on a Record ==
 
== Operate on a Record ==
Line 16: Line 16:
  
 
;GET /people/1/edit: return a form to edit the first record
 
;GET /people/1/edit: return a form to edit the first record
;PUT /people/1: submit a form for editing the first record
+
;PUT /people/1: submit fields for updating the first record
 +
 
 +
== Custom Actions ==
 +
It isn't always possible to may ''everything'' into Create-Retrieve-Update-Delete (CRUD).  Thus, there is also a syntax for specifying custom actions:
 +
;POST /people/1/promote: run the "promote" action against the first record

Revision as of 22:28, 27 September 2007

URL Conventions

The recommended conventions for RESTful URLs are those used by Ruby on Rails. Note that it is essential to use the proper HTTP verb for the desired action. Note that the principal unit of operation is the "collection", which typically corresponds to a database table or (in Rails) an ActiveRecord class. Following these conventions will allow your application to be consumed by ActiveResource, Jester, and other RESTful clients.

For a collection name "people", the primary routes would be:

Operate on the Collection

GET /people
return a list of all records
GET /people/new
return a form for creating a new record
POST /people
submit fields for creating a new record

Operate on a Record

GET /people/1
return the first record
DELETE /people/1
destroy the first record
GET /people/1/edit
return a form to edit the first record
PUT /people/1
submit fields for updating the first record

Custom Actions

It isn't always possible to may everything into Create-Retrieve-Update-Delete (CRUD). Thus, there is also a syntax for specifying custom actions:

POST /people/1/promote
run the "promote" action against the first record