X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FREST%2FForBrowsers.pm;h=24068f6fd576aa85912bad55af3637d3aa8840b0;hb=2a1aa89ced4e33172ca586e9b606ac61134f2d87;hp=1f647dddf2ef27b3c665cfe2940407cceddcf0f7;hpb=83273f945c722f1a05e584fb44c8664c1ab4c4b4;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/REST/ForBrowsers.pm b/lib/Catalyst/Action/REST/ForBrowsers.pm index 1f647dd..24068f6 100644 --- a/lib/Catalyst/Action/REST/ForBrowsers.pm +++ b/lib/Catalyst/Action/REST/ForBrowsers.pm @@ -42,3 +42,72 @@ override dispatch => sub { __PACKAGE__->meta->make_immutable; 1; + +=head1 NAME + +Catalyst::Action::REST::ForBrowsers - Automated REST Method Dispatching that Accommodates Browsers + +=head1 SYNOPSIS + + sub foo :Local :ActionClass('REST::ForBrowsers') { + ... do setup for HTTP method specific handlers ... + } + + sub foo_GET : Private { + ... do something for GET requests ... + } + + sub foo_GET_html : Private { + ... do something for GET requests from browsers ... + } + + sub foo_PUT : Private { + ... do something for PUT requests ... + } + +=head1 DESCRIPTION + +This class subclasses L to add an additional +dispatching hook. If the request is a GET request I the request looks +like it comes from a browser, it tries to dispatch to a C method +before trying to the C method instead. All other HTTP methods are +dispatched in the same way. + +For example, in the synopsis above, calling GET on "/foo" from a browser will +end up calling the C method. If the request is I from a +browser, it will call C. + +See L for more details on dispatching details. + +=head1 METHODS + +=over 4 + +=item dispatch + +This method overrides the default dispatch mechanism to the re-dispatching +mechanism described above. + +=back + +=head1 SEE ALSO + +You likely want to look at L, which implements a +sensible set of defaults for a controller doing REST. + +This class automatically adds the +L role to your request class. + +=head1 CONTRIBUTORS + +Dave Rolsky Eautarch@urth.orgE + +=head1 COPYRIGHT + +Copyright the above named AUTHOR and CONTRIBUTORS + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut