JSON::RPC::Legacy::Client(3pm) | User Contributed Perl Documentation | JSON::RPC::Legacy::Client(3pm) |
NAME¶
JSON::RPC::Legacy::Client - Perl implementation of JSON-RPC clientSYNOPSIS¶
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);
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::Legacy::Client¶
METHODS¶
- $client = JSON::RPC::Legacy::Client->new
- Creates new JSON::RPC::Legacy::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::Legacy::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::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".
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 optional.
If you set "version" 1.0 and don't set id, the module sets 'JSON::RPC::Legacy::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::Legacy::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::Legacy::ServiceObject¶
RESERVED PROCEDURE¶
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'.
SEE ALSO¶
<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html>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.
2015-06-12 | perl v5.20.2 |