Catalyst::Model::REST - REST model class for Catalyst
version 0.22
Use from a controller
# model __PACKAGE__->config( server => 'http://localhost:3000', type => 'application/json', clientattrs => {timeout => 5}, ); # controller sub foo : Local { my ($self, $c) = @_; my $res = $c->model('MyData')->post('foo/bar/baz', {foo => 'bar'}); my $code = $res->code; my $data = $res->data; ... }
For internal use
# model sub model_foo { my ($self) = @_; my $res = $self->post('foo/bar/baz', {foo => 'bar'}); my $code = $res->code; my $data = $res->data; return $data if $code == 200; }
This Catalyst Model class makes REST connectivety easy.
Catalyst::Model::REST will handle encoding and decoding when using the four HTTP verbs.
GET PUT POST DELETE
Currently Catalyst::Model::REST supports these encodings
application/json application/x-www-form-urlencoded application/xml application/yaml
x-www-form-urlencoded only works for GET and POST, and only for encoding, not decoding.
Called from Catalyst.
Catalyst::Model::REST implements the standard HTTP 1.1 verbs as methods
post get put delete
All methods take these parameters
url - The REST service data - The data structure (hashref, arrayref) to send. The data will be encoded according to the value of the I<type> attribute. args - hashref with arguments to augment the way the call is handled.
args - the optional argument parameter can have these entries
deserializer - if you KNOW that the content-type of the response is incorrect, you can supply the correct content type, like my $res = $self->post('foo/bar/baz', {foo => 'bar'}, {deserializer => 'application/yaml'});
All methods return a Catalyst::Model::REST::Response object.
Attributes can be set in your application's configuration file. See Catalyst::Manual.
Url of the REST server.
e.g. 'http://localhost:3000'
Mime content type,
e.g. application/json
Attributes to feed HTTP::Tiny
e.g. {timeout => 10}
Kaare Rasmussen, <kaare at cpan dot com>
Please report any bugs or feature requests to bug-catalyst-model-rest at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Model-REST.
Copyright 2010 Kaare Rasmussen, all rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
Kaare Rasmussen <kaare at cpan dot net>
This software is copyright (c) 2011 by Kaare Rasmussen.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Catalyst::Model::REST, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Model::REST
CPAN shell
perl -MCPAN -e shell install Catalyst::Model::REST
For more information on module installation, please visit the detailed CPAN module installation guide.