Simple question really, how do I invoke a non-GET REST action from a non-browser client, like an e-mail? In our rails 1.1.6 app, we have outbound e-mails that provide the reader several actions they can perform directly from their e-mail reader by clicking the link. Most of these actions would be POST or DELETE verbs. When we migrate to 1.2 and REST how do we implement such links? The syntax for custom actions (e.g. "/projects/1;close") seems close, but does this work for the built-in verbs too? Thanks in advance, Brittain
on 2007-07-09 18:27
on 2007-07-11 21:53
Brittain, Most browsers and other clients (like email) only use the HTML verbs GET and POST. Although, this may be corrected in the future, as XHTML5 fixes some of the problems with HTML4. In order to overcome this problem, Rails uses an overloaded post method for the missing verbs. This means that Rails includes a hidden value in a form indicating the verb (like PUT and DELETE). For example, in your edit form, you will have a field like: <input name ="_method" type="hidden" value="put" /> DELETE follows a similar format. As long as your client is able to submit forms, you should be ok. This URL might be helpful to you: http://www.b-simple.de/documents/download/6 I would also suggest the book RESTful Web Services from O'Reilly. Good luck!
on 2007-07-12 00:09