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.
+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 L<Catalyst::Controller::REST>,
which brings this class together with automatic Serialization of requests
$c->execute( $self->class, $self, @{ $req->args } );
}
-sub _get_allowed_methods {
+sub get_allowed_methods {
my ( $self, $controller, $c, $name ) = @_;
my $class = ref($controller) ? ref($controller) : $controller;
my $methods = Class::Inspector->methods($class);
sub _return_options {
my ( $self, $method_name, $controller, $c) = @_;
- my @allowed = $self->_get_allowed_methods($controller, $c, $method_name);
+ my @allowed = $self->get_allowed_methods($controller, $c, $method_name);
$c->response->content_type('text/plain');
$c->response->status(200);
$c->response->header( 'Allow' => \@allowed );
+ $c->response->body(q{});
}
sub _return_not_implemented {
my ( $self, $method_name, $controller, $c ) = @_;
- my @allowed = $self->_get_allowed_methods($controller, $c, $method_name);
+ my @allowed = $self->get_allowed_methods($controller, $c, $method_name);
$c->response->content_type('text/plain');
$c->response->status(405);
$c->response->header( 'Allow' => \@allowed );