Provided by: libjson-rpc-perl_1.06-2_all bug

NAME

       JSON::RPC::Legacy::Client - Perl implementation of JSON-RPC client

SYNOPSIS

          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>

       <http://json-rpc.org/wiki/specification>

AUTHOR

       Makamaka Hannyaharamitu, <makamaka[at]cpan.org>

COPYRIGHT AND LICENSE

       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.