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

NAME

       Catalyst::ActionRole::ConsumesContent - Match on HTTP Request Content-Type

SYNOPSIS

           package MyApp::Web::Controller::MyController;

           use base 'Catalyst::Controller';

           sub start : POST Chained('/') CaptureArg(0) { ... }

             sub is_json       : Chained('start') Consumes('application/json') { ... }
             sub is_urlencoded : Chained('start') Consumes('application/x-www-form-urlencoded') { ... }
             sub is_multipart  : Chained('start') Consumes('multipart/form-data') { ... }

             ## Alternatively, for common types...

             sub is_json       : Chained('start') Consume(JSON) { ... }
             sub is_urlencoded : Chained('start') Consumes(UrlEncoded) { ... }
             sub is_multipart  : Chained('start') Consumes(Multipart) { ... }

             ## Or allow more than one type

             sub is_more_than_one
               : Chained('start')
               : Consumes('application/x-www-form-urlencoded')
               : Consumes('multipart/form-data')
             {
               ## ...
             }

             1;

DESCRIPTION

       This is an action role that lets your Catalyst::Action match on the content type of the
       incoming request.

       Generally when there's a PUT or POST request, there's a request content body with a
       matching MIME content type.  Commonly this will be one of the types used with classic HTML
       forms ('application/x-www-form-urlencoded' for example) but there's nothing stopping you
       specifying any valid content type.

       For matching purposes, we match strings but the casing is insensitive.

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 content type matches one of the
       allowed content types (see "http_methods") and zero otherwise.

   allowed_content_types
       An array of strings that are the allowed content types for matching this action.

   can_consume
       Boolean.  Does the current request match content type with what this actionrole can
       consume?

   list_extra_info
       Add the accepted content type to the debug screen.

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.