BEGIN { require 5.008001; }
-our $VERSION = '0.74';
+our $VERSION = '0.78';
+$VERSION = eval $VERSION;
sub new {
my $class = shift;
... do something for GET requests ...
}
- sub foo_PUT {
- ... do somethign for PUT requests ...
+ # alternatively use an Action
+ sub foo_PUT : Action {
+ ... do something for PUT requests ...
}
=head1 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.
+underscore and method name. First it will try dispatching to an action with
+the generated name, and failing that it will try to dispatch to a regular
+method.
For example, in the synopsis above, calling GET on "/foo" would result in
the foo_GET method being dispatched.
my ($code, $name);
# Common case, for foo_GET etc
- if ( my $action = $controller->action_for($rest_method) ) {
- return $c->forward( $action, $c->req->args );
+ if ( $code = $controller->action_for($rest_method) ) {
+ $c->execute( $self->class, $self, @{ $c->req->args } );
+ return $c->forward( $code, $c->req->args );
} elsif ($code = $controller->can($rest_method)) {
# Exceute normal action
$c->execute( $self->class, $self, @{ $c->req->args } );
=item Q: I'm getting a "415 Unsupported Media Type" error. What gives?!
-<<<<<<< HEAD:lib/Catalyst/Action/REST.pm
-A: Most likely, you haven't set Content-type equal to "application/json", or one of the
-accepted return formats. You can do this by setting it in your query string thusly:
-?content-type=application%2Fjson (where %2F == / uri escaped).
-
-**NOTE** Apache will refuse %2F unless configured otherise.
-Make sure AllowEncodedSlashes On is in your httpd.conf file in order for this to run smoothly.
-
-=cut
-
-=cut
-
-=======
A: Most likely, you haven't set Content-type equal to "application/json", or
one of the accepted return formats. You can do this by setting it in your query
accepted return formats. You can do this by setting it in your query string
thusly: C<< ?content-type=application%2Fjson (where %2F == / uri escaped). >>
->>>>>>> f04ed654a172628f642bdefe8483c1e6becf9ad1:lib/Catalyst/Action/REST.pm
B<NOTE> Apache will refuse %2F unless configured otherise.
Make sure C<< AllowEncodedSlashes On >> is in your httpd.conf file in orde
=back
+=head1 AUTHOR
+
+Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway
+
+Marchex, Inc. paid me while I developed this module. (L<http://www.marchex.com>)
+
=head1 CONTRIBUTORS
+Arthur Axel "fREW" Schmidt <frioux@gmail.com>
+
Christopher Laco
Luke Saunders
Tomas Doran (t0m) <bobtfish@bobtfish.net>
-=head1 AUTHOR
-
-Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway
+=head1 COPYRIGHT
-Marchex, Inc. paid me while I developed this module. (L<http://www.marchex.com>)
+Copyright the above named AUTHOR and CONTRIBUTORS
=head1 LICENSE