.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Catalyst::ActionRole::ConsumesContent 3pm" .TH Catalyst::ActionRole::ConsumesContent 3pm "2023-09-28" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Catalyst::ActionRole::ConsumesContent \- Match on HTTP Request Content\-Type .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& package MyApp::Web::Controller::MyController; \& \& use base \*(AqCatalyst::Controller\*(Aq; \& \& sub start : POST Chained(\*(Aq/\*(Aq) CaptureArg(0) { ... } \& \& sub is_json : Chained(\*(Aqstart\*(Aq) Consumes(\*(Aqapplication/json\*(Aq) { ... } \& sub is_urlencoded : Chained(\*(Aqstart\*(Aq) Consumes(\*(Aqapplication/x\-www\-form\-urlencoded\*(Aq) { ... } \& sub is_multipart : Chained(\*(Aqstart\*(Aq) Consumes(\*(Aqmultipart/form\-data\*(Aq) { ... } \& \& ## Alternatively, for common types... \& \& sub is_json : Chained(\*(Aqstart\*(Aq) Consume(JSON) { ... } \& sub is_urlencoded : Chained(\*(Aqstart\*(Aq) Consumes(UrlEncoded) { ... } \& sub is_multipart : Chained(\*(Aqstart\*(Aq) Consumes(Multipart) { ... } \& \& ## Or allow more than one type \& \& sub is_more_than_one \& : Chained(\*(Aqstart\*(Aq) \& : Consumes(\*(Aqapplication/x\-www\-form\-urlencoded\*(Aq) \& : Consumes(\*(Aqmultipart/form\-data\*(Aq) \& { \& ## ... \& } \& \& 1; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is an action role that lets your Catalyst::Action match on the content type of the incoming request. .PP Generally when there's a \s-1PUT\s0 or \s-1POST\s0 request, there's a request content body with a matching \s-1MIME\s0 content type. Commonly this will be one of the types used with classic \s-1HTML\s0 forms ('application/x\-www\-form\-urlencoded' for example) but there's nothing stopping you specifying any valid content type. .PP For matching purposes, we match strings but the casing is insensitive. .SH "REQUIRES" .IX Header "REQUIRES" This role requires the following methods in the consuming class. .SS "match" .IX Subsection "match" .SS "match_captures" .IX Subsection "match_captures" Returns 1 if the action matches the existing request and zero if not. .SH "METHODS" .IX Header "METHODS" This role defines the following methods .SS "match" .IX Subsection "match" .SS "match_captures" .IX Subsection "match_captures" Around method modifier that return 1 if the request content type matches one of the allowed content types (see \*(L"http_methods\*(R") and zero otherwise. .SS "allowed_content_types" .IX Subsection "allowed_content_types" An array of strings that are the allowed content types for matching this action. .SS "can_consume" .IX Subsection "can_consume" Boolean. Does the current request match content type with what this actionrole can consume? .SS "list_extra_info" .IX Subsection "list_extra_info" Add the accepted content type to the debug screen. .SH "AUTHORS" .IX Header "AUTHORS" Catalyst Contributors, see Catalyst.pm .SH "COPYRIGHT" .IX Header "COPYRIGHT" This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.