X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Action-Serialize-Data-Serializer.git;a=blobdiff_plain;f=README;fp=README;h=ace893239feb335110255eb2c77c1aba5a5a753e;hp=7d38474c46ec3c4e823e3cb351ae0ac650244537;hb=79025f72c27ba313b3c701cee238f84166f32f9e;hpb=f10c7e1c7eb3b4cb10401dbb86ca8db3dc38ced2 diff --git a/README b/README index 7d38474..ace8932 100644 --- a/README +++ b/README @@ -1,79 +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. If you do not provide an _HEAD - either, we will auto dispatch to the _GET one in case it exists. - - 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 + genreally weird. Use at your own risk. AUTHOR Adam Jacob , with lots of help from mst and @@ -112,7 +63,7 @@ CONTRIBUTORS 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.