---
name: "Catalyst::ActionRole::ConsumesContent"
section: "3pm"
platform: "linux"
package: "libcatalyst-perl"
version: "5.90132-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::ActionRole::ConsumesContent"
---

# Catalyst::ActionRole::ConsumesContent(3pm)

Match on HTTP Request Content-Type

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