John Napiorkowski > Catalyst-Runtime-5.90059_003 > Catalyst::ActionRole::ConsumesContent

Download:
Catalyst-Runtime-5.90059_003.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  21
Open  15
Stalled  1
View/Report Bugs
Source   Latest Release: Catalyst-Runtime-5.90071

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.

syntax highlighting: