Provided by: libcatalyst-perl_5.90115-1_all bug

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 options_user : Chained('user_base') Args(1) OPTIONS { ... }
             sub patch_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).

   list_extra_info
       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.