---
name: "Catalyst::TraitFor::Request::REST"
section: "3pm"
platform: "linux"
package: "libcatalyst-action-rest-perl"
version: "1.21-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::TraitFor::Request::REST"
---

# Catalyst::TraitFor::Request::REST(3pm)

A role to apply to Catalyst::Request giving it REST methods and attributes.

## NAME

Catalyst::TraitFor::Request::REST - A role to apply to Catalyst::Request giving it REST methods and attributes.

## SYNOPSIS

```
     if ( $c->request->accepts('application/json') ) {
         ...
     }
     my $types = $c->request->accepted_content_types();
```

## DESCRIPTION

This is a Moose::Role applied to Catalyst::Request that adds a few methods to the request object to facilitate writing REST-y code. Currently, these methods are all related to the content types accepted by the client and the content type sent in the request.

## METHODS

- data

  If the request went through the Deserializer action, this method will return the deserialized data structure.

- accepted\_content\_types

  Returns an array reference of content types accepted by the client.

  The list of types is created by looking at the following sources:

  - •

    Content-type header

    If this exists, this will always be the first type in the list.

  - •

    content-type parameter

    If the request is a GET request and there is a "content-type" parameter in the query string, this will come before any types in the Accept header.

  - •

    Accept header

    This will be parsed and the types found will be ordered by the relative quality specified for each type.

  If a type appears in more than one of these places, it is ordered based on where it is first found.

- preferred\_content\_type

  This returns the first content type found. It is shorthand for:

  ```
    $request->accepted_content_types->[0]
  ```

- accepts($type)

  Given a content type, this returns true if the type is accepted.

  Note that this does not do any wildcard expansion of types.

## AUTHORS

See Catalyst::Action::REST for authors.

## LICENSE

You may distribute this code under the same terms as Perl itself.
