package Catalyst::Controller::REST;
+our $VERSION = '0.72';
+
=head1 NAME
Catalyst::Controller::REST - A RESTful controller
In addition, each serializer has it's quirks in terms of what sorts of data
structures it will properly handle. L<Catalyst::Controller::REST> makes
-no attempt to svae you from yourself in this regard. :)
+no attempt to save you from yourself in this regard. :)
=over 2
This uses L<YAML::Syck> and L<URI::Find> to generate YAML with all URLs turned
to hyperlinks. Only useable for Serialization.
-=item C<text/x-json> => C<JSON::Syck>
+=item C<application/json> => C<JSON>
-Uses L<JSON::Syck> to generate JSON output
+Uses L<JSON> to generate JSON output. It is strongly advised to also have
+L<JSON::XS> installed. The C<text/x-json> content type is supported but is
+deprecated and you will receive warnings in your log.
=item C<text/x-data-dumper> => C<Data::Serializer>
__PACKAGE__->mk_accessors(qw(serialize));
__PACKAGE__->config(
- 'stash_key' => 'rest',
- 'map' => {
- 'text/html' => 'YAML::HTML',
- 'text/xml' => 'XML::Simple',
- 'text/x-yaml' => 'YAML',
- 'text/x-json' => 'JSON',
- 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
- 'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
- 'text/x-data-taxi' => [ 'Data::Serializer', 'Data::Taxi' ],
- 'application/x-storable' => [ 'Data::Serializer', 'Storable' ],
- 'application/x-freezethaw' => [ 'Data::Serializer', 'FreezeThaw' ],
- 'text/x-config-general' => [ 'Data::Serializer', 'Config::General' ],
- 'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serialization' ],
- },
+ 'stash_key' => 'rest',
+ 'map' => {
+ 'text/html' => 'YAML::HTML',
+ 'text/xml' => 'XML::Simple',
+ 'text/x-yaml' => 'YAML',
+ 'application/json' => 'JSON',
+ 'text/x-json' => 'JSON',
+ 'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
+ 'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
+ 'text/x-data-taxi' => [ 'Data::Serializer', 'Data::Taxi' ],
+ 'application/x-storable' => [ 'Data::Serializer', 'Storable' ],
+ 'application/x-freezethaw' => [ 'Data::Serializer', 'FreezeThaw' ],
+ 'text/x-config-general' => [ 'Data::Serializer', 'Config::General' ],
+ 'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serialization' ],
+ },
);
-sub begin : ActionClass('Deserialize') {
-}
+sub begin : ActionClass('Deserialize') { }
-sub end : ActionClass('Serialize') {
-}
+sub end : ActionClass('Serialize') { }
=item status_ok
'text/html' => 'YAML::HTML',
'text/xml' => 'XML::Simple',
'text/x-yaml' => 'YAML',
+ 'application/json' => 'JSON',
'text/x-json' => 'JSON',
'text/x-data-dumper' => [ 'Data::Serializer', 'Data::Dumper' ],
'text/x-data-denter' => [ 'Data::Serializer', 'Data::Denter' ],
... do things after Serializing ...
}
+=back
+
=head1 A MILD WARNING
I have code in production using L<Catalyst::Controller::REST>. That said,
Marchex, Inc. paid me while I developed this module. (http://www.marchex.com)
+=head1 MAINTAINER
+
+J. Shirley <jshirley@cpan.org>
+
=head1 LICENSE
You may distribute this code under the same terms as Perl itself.