The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Request::REST - A REST-y subclass of Catalyst::Request

SYNOPSIS

     if ( $c->request->accepts('application/json') ) {
         ...
     }

     my $types = $c->request->accepted_content_types();

DESCRIPTION

This is a subclass of Catalyst::Request that adds a few methods to the request object to faciliate writing REST-y code. Currently, these methods are all related to the content types accepted by the client.

METHODS

    If the request went through the Deserializer action, this method will returned 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.

AUTHOR

Adam Jacob <adam@stalecoffee.org>, with lots of help from mst and jrockway

LICENSE

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

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 38:

=over should be: '=over' or '=over positive_number'

You can't have =items (as at line 47) unless the first thing after the =over is an =item

Around line 144:

You forgot a '=back' before '=head1'