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.
Note that if you have a custom request class in your application, and it does not inherit from Catalyst::Request::REST
, your application will fail with an error indicating a conflict the first time it tries to use Catalyst::Request::REST
's functionality. To fix this error, make sure your custom request class inherits from Catalyst::Request::REST
.
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
MAINTAINER
J. Shirley <jshirley@cpan.org>
LICENSE
You may distribute this code under the same terms as Perl itself.