X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README;h=00e1bbbc4143ac78f8f0b582fdb526e44a1410bc;hb=09fbacb73fa99be904e786c14b2f41420e5f4bf4;hp=ae77756e5eb3215bb39f964350a658b4f3540701;hpb=8aa1a2eeb6a2f0170ca8548a3862eb874b07238b;p=catagits%2FCatalyst-Action-Serialize-Data-Serializer.git diff --git a/README b/README index ae77756..00e1bbb 100644 --- a/README +++ b/README @@ -1,78 +1,30 @@ NAME - Catalyst::Action::REST - Automated REST Method Dispatching + Catalyst::Action::Serialize::Data::Serializer - Serialize with + Data::Serializer SYNOPSIS - sub foo :Local :ActionClass('REST') { - ... do setup for HTTP method specific handlers ... - } + package MyApp::Controller::Foo; - sub foo_GET { - ... do something for GET requests ... - } + use Moose; + use namespace::autoclean; - # alternatively use an Action - sub foo_PUT : Action { - ... do something for PUT requests ... - } + BEGIN { extends 'Catalyst::Controller' } + + __PACKAGE__->config( + 'default' => 'text/x-yaml', + 'stash_key' => 'rest', + 'map' => { + 'text/x-yaml' => 'YAML', + 'application/json' => 'JSON', + 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ], + }, + ); 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. 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. - - 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, it adds the Catalyst::TraitFor::Request::REST - role to your request class. - -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. - - This class automatically adds the Catalyst::TraitFor::Request::REST role - to your request class. If you're writing a web application which - provides RESTful responses and still needs to accommodate web browsers, - you may prefer to use Catalyst::TraitFor::Request::REST::ForBrowsers - instead. - - Catalyst::Action::Serialize, Catalyst::Action::Deserialize - -TROUBLESHOOTING - Q: I'm getting a "415 Unsupported Media Type" error. What gives?! - 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: - "?content-type=application%2Fjson (where %2F == / uri escaped)." - - NOTE Apache will refuse %2F unless configured otherwise. Make sure - "AllowEncodedSlashes On" is in your httpd.conf file in order for - this to run smoothly. + This module implements a serializer for use with "Data::Dumper" and + others. It was factored out of Catalyst::Action::REST because it is + unlikely to be widely used and tends to break tests, be insecure, and is + generally weird. Use at your own risk. AUTHOR Adam Jacob , with lots of help from mst and @@ -108,8 +60,10 @@ CONTRIBUTORS Colin Newell + Wallace Reis + COPYRIGHT - Copyright (c) 2006-2012 the above named AUTHOR and CONTRIBUTORS + Copyright (c) 2006-2013 the above named AUTHOR and CONTRIBUTORS LICENSE You may distribute this code under the same terms as Perl itself.