NAME¶
Catalyst::ActionRole::HTTPMethods - Match on HTTP Methods
SYNOPSIS¶
package MyApp::Web::Controller::MyController;
use Moose;
use MooseX::MethodAttributes;
extends 'Catalyst::Controller';
sub user_base : Chained('/') CaptureArg(0) { ... }
sub get_user : Chained('user_base') Args(1) GET { ... }
sub post_user : Chained('user_base') Args(1) POST { ... }
sub put_user : Chained('user_base') Args(1) PUT { ... }
sub delete_user : Chained('user_base') Args(1) DELETE { ... }
sub head_user : Chained('user_base') Args(1) HEAD { ... }
sub option_user : Chained('user_base') Args(1) OPTION { ... }
sub option_user : Chained('user_base') Args(1) PATCH { ... }
sub post_and_put : Chained('user_base') POST PUT Args(1) { ... }
sub method_attr : Chained('user_base') Method('DELETE') Args(0) { ... }
__PACKAGE__->meta->make_immutable;
DESCRIPTION¶
This is an action role that lets your Catalyst::Action match on standard HTTP
methods, such as GET, POST, etc.
Since most web browsers have limited support for rich HTTP Method vocabularies
we use Plack::Middleware::MethodOverride which allows you to 'tunnel' your
request method over POST This works in two ways. You can set an extension HTTP
header "X-HTTP-Method-Override" which will contain the value of the
desired request method, or you may set a search query parameter
"x-tunneled-method". Remember, these only work over HTTP Request
type POST. See Plack::Middleware::MethodOverride for more.
REQUIRES¶
This role requires the following methods in the consuming class.
match¶
match_captures¶
Returns 1 if the action matches the existing request and zero if not.
METHODS¶
This role defines the following methods
match¶
match_captures¶
Around method modifier that return 1 if the request method matches one of the
allowed methods (see "http_methods") and zero otherwise.
allowed_http_methods¶
An array of strings that are the allowed http methods for matching this action
normalized as noted above (using X-Method* overrides).
Adds a key => [@values] "HTTP_METHODS" whose value is an ArrayRef
of sorted allowed methods to the ->list_extra_info HashRef. This is used
primarily for debugging output.
_has_expected_http_method ($expected)¶
Private method which returns 1 if $expected matches one of the allowed in
"http_methods" and zero otherwise.
AUTHORS¶
Catalyst Contributors, see Catalyst.pm
COPYRIGHT¶
This library is free software. You can redistribute it and/or modify it under
the same terms as Perl itself.