NAME
Catalyst::Controller::REST - A RESTful controller
+VERSION
+ 0.73
+
SYNOPSIS
package Foo::Controller::Bar;
{ data => $yourdata }
+ View
+ Uses a regular Catalyst view. For example, if you wanted to have your
+ "text/html" and "text/xml" views rendered by TT:
+
+ 'text/html' => [ 'View', 'TT' ],
+ 'text/xml' => [ 'View', 'XML' ],
+
+ Will do the trick nicely.
+
By default, Catalyst::Controller::REST will return a "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
"default" config option:
- __PACKAGE__->config->{'serialize'}->{'default'} = 'YAML';
+ __PACKAGE__->config->{'serialize'}->{'default'} = 'text/x-yaml';
- Would make it always fall back to 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 Catalyst::Action::Serialize and
],
'text/x-config-general' => [ 'Data::Serializer', 'Config::General' ]
,
- 'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serializat
- ion' ],
+ 'text/x-php-serialization' => [ 'Data::Serializer', 'PHP::Serialization' ],
},
}
);
The "begin" method uses Catalyst::Action::Deserialize. The "end"
method uses Catalyst::Action::Serialize. If you want to override
either behavior, simply implement your own "begin" and "end" actions
- and use NEXT:
+ and use MRO::Compat:
my Foo::Controller::Monkey;
use base qw(Catalyst::Controller::REST);
sub begin :Private {
my ($self, $c) = @_;
- ... do things before Deserializing ...
- $self->NEXT::begin($c);
+ ... do things before Deserializing ...
+ $self->maybe::next::method($c);
... do things after Deserializing ...
}
sub end :Private {
my ($self, $c) = @_;
- ... do things before Serializing ...
- $self->NEXT::end($c);
+ ... do things before Serializing ...
+ $self->maybe::next::method($c);
... do things after Serializing ...
}