SYNOPSIS
use JSON::RPC::Client;
my $client = new JSON::RPC::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);
DESCRIPTION
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.
JSON::RPC::Client
METHODS
- $client = JSON::RPC::Client->new
- Creates new JSON::RPC::Client object.
- $response = $client->call($uri, $procedure_object)
-
Calls to $uri with $procedure_object.
The request method is usually "POST".
If $uri has query string, method is "GET".
About 'GET' method, see to <http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#GetProcedureCall>.
Return value is ``JSON::RPC::ReturnObject''.
- $client->prepare($uri, $arrayref_of_procedure)
-
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::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".
Currently, can't call any method names as same as built-in methods.
- version
- Sets the JSON-RPC protocol version. 1.1 by default.
- id
-
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::Client' to it.
- ua
- Setter/getter to LWP::UserAgent object.
- json
-
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.
- status_line
- Returns status code; After "call" a remote procedure, the status code is set.
- create_json_coder
- (Class method) Returns a JSON de/encoder in "new". You can override it to use your favorite JSON de/encoder.
JSON::RPC::ReturnObject
"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.)METHODS
- is_success
- If the call is successful, returns a true, otherwise a false.
- is_error
- If the call is not successful, returns a true, otherwise a false.
- error_message
- If the response contains an error message, returns it.
- result
- Returns the result part of a data structure returned by the called server.
- content
- Returns the whole data structure returned by the called server.
- jsontext
- Returns the row JSON data.
- version
- Returns the version of this response data.
JSON::RPC::ServiceObject
RESERVED PROCEDURE
When a client call a procedure (method) name 'system.foobar', JSON::RPC::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::Server::system::describe for default response of 'system.describe'.
AUTHOR
Makamaka Hannyaharamitu, <makamaka[at]cpan.org>COPYRIGHT AND LICENSE
Copyright 2007-2008 by Makamaka HannyaharamituThis library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.