J. Shirley > Catalyst-Action-REST-0.66 > Catalyst::Action::REST

Download:
Catalyst-Action-REST-0.66.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  19
View/Report Bugs
Module Version: 0.66   Source   Latest Release: Catalyst-Action-REST-1.14

NAME ^

Catalyst::Action::REST - Automated REST Method Dispatching

SYNOPSIS ^

    sub foo :Local :ActionClass('REST') {
      ... do setup for HTTP method specific handlers ...
    }

    sub foo_GET { 
      ... do something for GET requests ...
    }

    sub foo_PUT { 
      ... do somethign for PUT requests ...
    }

DESCRIPTION ^

This Action handles doing automatic method dispatching for REST requests. It takes a normal Catalyst action, and changes the dispatch to append an underscore and method name.

For example, in the synopsis above, calling GET on "/foo" would result in the foo_GET method being dispatched.

If a method is requested that is not implemented, this action will return a status 405 (Method Not Found). It will populate the "Allow" header with the list of implemented request methods. You can override this behavior by implementing a custom 405 handler like so:

   sub foo_not_implemented {
      ... handle not implemented methods ...
   }

If you do not provide an _OPTIONS subroutine, we will automatically respond with a 200 OK. The "Allow" header will be populated with the list of implemented request methods.

It is likely that you really want to look at Catalyst::Controller::REST, which brings this class together with automatic Serialization of requests and responses.

When you use this module, the request class will be changed to Catalyst::Request::REST.

METHODS ^

dispatch

This method overrides the default dispatch mechanism to the re-dispatching mechanism described above.

SEE ALSO ^

You likely want to look at Catalyst::Controller::REST, which implements a sensible set of defaults for a controller doing REST.

Catalyst::Action::Serialize, Catalyst::Action::Deserialize

MAINTAINER ^

J. Shirley <jshirley@gmail.com>

CONTRIBUTORS ^

Christopher Laco

Luke Saunders

John Goulah

Daisuke Maki <daisuke@endeworks.jp>

AUTHOR ^

Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway

Marchex, Inc. paid me while I developed this module. (http://www.marchex.com)

LICENSE ^

You may distribute this code under the same terms as Perl itself.

syntax highlighting: