REST actions from e-mail links


#1

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


#2

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:

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!


#3

Thanks for the response. We were aware that the rails helpers
fabricate the extra parameter via javascript and our concern were for
all those mail clients who disable js for spam protection.

We’ll have a look into whether our e-mail could be rewritten using
HTML forms instead.

Thanks, Brittain