Role::REST::Client - REST Client Role
version 0.04
{ package RESTExample; use Moose; with 'Role::REST::Client'; sub bar { my ($self) = @_; my $res = $self->post('foo/bar/baz', {foo => 'bar'}); my $code = $res->code; my $data = $res->data; return $data if $code == 200; } } my $foo = RESTExample->new( server => 'http://localhost:3000', type => 'application/json', clientattrs => {timeout => 5}, ); $foo->bar; # 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; ... }
This REST Client role makes REST connectivety easy.
Role::REST::Client will handle encoding and decoding when using the four HTTP verbs.
GET PUT POST DELETE
Currently Role::REST::Client 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.
Role::REST::Client 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 Role::REST::Client::Response object.
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-role-rest-client at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Role-REST-Client.
Copyright 2012 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) 2012 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 Role::REST::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Role::REST::Client
CPAN shell
perl -MCPAN -e shell install Role::REST::Client
For more information on module installation, please visit the detailed CPAN module installation guide.