JSON::RPC::Legacy::Client - Perl implementation of JSON-RPC client
use JSON::RPC::Legacy::Client; my $client = new JSON::RPC::Legacy::Client; my $url = 'http://www.example.com/jsonrpc/API'; my $callobj = { method => 'sum', params => [ 17, 25 ], # ex.) params => { a => 20, b => 10 } for JSON-RPC v1.1 }; my $res = $client->call($uri, $callobj); if($res) { if ($res->is_error) { print "Error : ", $res->error_message; } else { print $res->result; } } else { print $client->status_line; } # Easy access $client->prepare($uri, ['sum', 'echo']); print $client->sum(10, 23);
This is JSON-RPC Client. See http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html.
Gets a perl object and convert to a JSON request data.
Sends the request to a server.
Gets a response returned by the server.
Converts the JSON response data to the perl object.
Creates new JSON::RPC::Legacy::Client object.
Calls to $uri with $procedure_object. The request method is usually POST. If $uri has query string, method is GET.
POST
GET
About 'GET' method, see to http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#GetProcedureCall.
Return value is "JSON::RPC::Legacy::ReturnObject".
Allow to call methods in contents of $arrayref_of_procedure. Then you can call the prepared methods with an array reference or a list.
The return value is a result part of JSON::RPC::Legacy::ReturnObject.
$client->prepare($uri, ['sum', 'echo']); $res = $client->echo('foobar'); # $res is 'foobar'. $res = $client->sum(10, 20); # sum up $res = $client->sum( [10, 20] ); # same as above
If you call a method which is not prepared, it will croak.
croak
Currently, can't call any method names as same as built-in methods.
Sets the JSON-RPC protocol version. 1.1 by default.
Sets a request identifier. In JSON-RPC 1.1, it is optoinal.
If you set version 1.0 and don't set id, the module sets 'JSON::RPC::Legacy::Client' to it.
version
Setter/getter to LWP::UserAgent object.
Setter/getter to the JSON coder object. Default is JSON, likes this:
$self->json( JSON->new->allow_nonref->utf8 ); $json = $self->json;
This object serializes/deserializes JSON data. By default, returned JSON data assumes UTF-8 encoded.
Returns status code; After call a remote procedure, the status code is set.
call
(Class method) Returns a JSON de/encoder in new. You can override it to use your favorite JSON de/encoder.
new
call method or the methods set by prepared returns this object. (The returned JSON data is decoded by the JSON coder object which was passed by the client object.)
prepared
If the call is successful, returns a true, otherwise a false.
If the call is not successful, returns a true, otherwise a false.
If the response contains an error message, returns it.
Returns the result part of a data structure returned by the called server.
Returns the whole data structure returned by the called server.
Returns the row JSON data.
Returns the version of this response data.
When a client call a procedure (method) name 'system.foobar', JSON::RPC::Legacy::Server look up MyApp::system::foobar.
http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#ProcedureCall
http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#ServiceDescription
There is JSON::RPC::Legacy::Server::system::describe for default response of 'system.describe'.
http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html
http://json-rpc.org/wiki/specification
Makamaka Hannyaharamitu, <makamaka[at]cpan.org>
Copyright 2007-2008 by Makamaka Hannyaharamitu
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install JSON::RPC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSON::RPC
CPAN shell
perl -MCPAN -e shell install JSON::RPC
For more information on module installation, please visit the detailed CPAN module installation guide.