X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FAction%2FSerialize.pm;h=313ba802a4a6a2c654a0cb3c4176c03b0bad18a6;hb=398c5a1bfa52e417d07af96341ec75424dd519ed;hp=489643804348b204cdfea7f1e13bf0ca8c2b4c92;hpb=edab9038aa7b1c76d52ab17b4e521ca8dfa8e54c;p=catagits%2FCatalyst-Action-REST.git diff --git a/lib/Catalyst/Action/Serialize.pm b/lib/Catalyst/Action/Serialize.pm index 4896438..313ba80 100644 --- a/lib/Catalyst/Action/Serialize.pm +++ b/lib/Catalyst/Action/Serialize.pm @@ -75,3 +75,74 @@ sub execute { } 1; + +=head1 NAME + +Catalyst::Action::Serialize - Serialize Data in a Response + +=head1 SYNOPSIS + + package Foo::Controller::Bar; + + __PACKAGE__->config( + serialize => { + 'default' => 'YAML', + 'stash_key' => 'rest', + 'map' => { + 'text/x-yaml' => 'YAML', + 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ], + }, + } + ); + + sub end : ActionClass('Serialize') {} + +=head1 DESCRIPTION + +This action will serialize the body of an HTTP Response. The serializer is +selected by introspecting the requests content-type header. + +It requires that your Catalyst controller have a "serialize" entry +in it's configuration. + +The specifics of serializing each content-type is implemented as +a plugin to L. + +=head1 CONFIGURATION + +=over 4 + +=item default + +The default Serialization format. See the next section for +available options. This is used if a requested content-type +is not recognized. + +=item stash_key + +Where in the stash the data you want serialized lives. + +=item map + +Takes a hashref, mapping Content-Types to a given plugin. + +=back + +=head1 SEE ALSO + +You likely want to look at L, which implements +a sensible set of defaults for a controller doing REST. + +L, L + +=head1 AUTHOR + +Adam Jacob , with lots of help from mst and jrockway + +Marchex, Inc. paid me while I developed this module. (http://www.marchex.com) + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut