From: Dan Dascalescu Date: Thu, 10 Dec 2009 03:34:32 +0000 (-0800) Subject: Cosmetic changes to C::C::REST POD X-Git-Tag: 0.79~4 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Action-REST.git;a=commitdiff_plain;h=95318468df4a065b0008603a98036fa76867bb22 Cosmetic changes to C::C::REST POD --- diff --git a/lib/Catalyst/Controller/REST.pm b/lib/Catalyst/Controller/REST.pm index e855c9c..2cd5f47 100644 --- a/lib/Catalyst/Controller/REST.pm +++ b/lib/Catalyst/Controller/REST.pm @@ -34,7 +34,7 @@ Catalyst::Controller::REST - A RESTful controller # Answer PUT requests to "thing" sub thing_PUT { - .. some action .. + ... some action ... } =head1 DESCRIPTION @@ -76,7 +76,12 @@ If we do not have (or cannot run) a serializer for a given content-type, a 415 To make your Controller RESTful, simply have it - use base 'Catalyst::Controller::REST'; + BEGIN {extends 'Catalyst::Controller::REST'; } + +Or if you use pre-Moose Catalyst versions, + + use parent 'Catalyst::Controller::REST'; + =head1 SERIALIZATION @@ -102,62 +107,63 @@ it and use the best-ranked choice. =back + =head1 AVAILABLE SERIALIZERS A given serialization mechanism is only available if you have the underlying modules installed. For example, you can't use XML::Simple if it's not already installed. -In addition, each serializer has it's quirks in terms of what sorts of data +In addition, each serializer has its quirks in terms of what sorts of data structures it will properly handle. L makes no attempt to save you from yourself in this regard. :) =over 2 -=item C => C +=item * C => C Returns YAML generated by L. -=item C => C +=item * C => C This uses L and L to generate YAML with all URLs turned to hyperlinks. Only useable for Serialization. -=item C => C +=item * C => C Uses L to generate JSON output. It is strongly advised to also have L installed. The C content type is supported but is deprecated and you will receive warnings in your log. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses the L module to generate L output. -=item C => C +=item * C => C Uses L to generate XML output. This is probably not suitable for any real heavy XML work. Due to Ls requirement that the data @@ -165,7 +171,7 @@ you serialize be a HASHREF, we transform outgoing data to be in the form of: { data => $yourdata } -=item L +=item * L Uses a regular Catalyst view. For example, if you wanted to have your C and C views rendered by TT: @@ -177,25 +183,26 @@ Will do the trick nicely. =back -By default, L will return a C<415 Unsupported Media Type> -response if an attempt to use an unsupported content-type is made. You -can ensure that something is always returned by setting the C -config option: +By default, L will return a +C<415 Unsupported Media Type> response if an attempt to use an unsupported +content-type is made. You can ensure that something is always returned by +setting the C config option: __PACKAGE__->config->{'default'} = 'text/x-yaml'; -Would make it always fall back to the serializer plugin defined for text/x-yaml. - -Implementing new Serialization formats is easy! Contributions -are most welcome! See L and -L for more information. +would make it always fall back to the serializer plugin defined for +C. =head1 CUSTOM SERIALIZERS -If you would like to implement a custom serializer, you should create two new -modules in the L and -L namespace. Then assign your new class -to the content-type's you want, and you're done. +Implementing new Serialization formats is easy! Contributions +are most welcome! If you would like to implement a custom serializer, +you should create two new modules in the L +and L namespace. Then assign your new +class to the content-type's you want, and you're done. + +See L and L +for more information. =head1 STATUS HELPERS @@ -228,9 +235,9 @@ __PACKAGE__->config( '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' ], + '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' ], }, ); @@ -452,26 +459,21 @@ L and L. It should This class provides a default configuration for Serialization. It is currently: __PACKAGE__->config( - serialize => { - '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' ], - }, - } + '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' ], + }, ); You can read the full set of options for this configuration block in