JSONRPC - Perl implementation of JSON-RPC protocol
#-------------------------- # In your application class package MyApp; sub own_method { # called by clients my ($server, @params) = @_; # $server is JSONRPC object. ... # return a scalar value or a hashref or an arryaref. } #-------------------------- # In your main cgi script. use JSONRPC::Transport::HTTP; use MyApp; # a la XMLRPC::Lite JSONRPC::Transport::HTTP::CGI->dispatch_to('MyApp')->handle(); #-------------------------- # Client version use JSONRPC::Transport::HTTP; my $uri = 'http://www.example.com/MyApp/Test/'; my $res = JSONRPC::Transport::HTTP ->proxy($uri) ->call('echo',['This is test.']) ->result; if($res->error){ print $res->error,"\n"; } else{ print $res->result,"\n"; } # or my $client = JSONRPC::Transport::HTTP->proxy($uri); print $client->echo('This is test.'); # the alias, _echo is same.
In the next large update version, JSON and JSONRPC modules are split.
JSONRPC* and Apache::JSONRPC are deleted from JSON dist. JSONRPC::Client, JSONRPC::Server and JSONRPC::Procedure in JSON::RPC dist. Modules in JSON::RPC dist supports JSONRPC protocol v1.1 and 1.0.
This module implementes JSON-RPC (http://json-rpc.org/) server and client. Most ideas were borrowed from XMLRPC::Lite. Currently JSONRPC provides CGI server function.
JSONRPC
The accessor of a JSON::Parser object.
my $srv = JSONRPC::Transport::HTTP::CGI->new; $srv->jsonParser->{unmapping} = 1;
The accessor of a JSON::Converter object.
takes a service uri and optional proxy uri. returns a client object.
JSONRPC::Transport::HTTP JSON XMLRPC::Lite http://json-rpc.org/
Makamaka Hannyaharamitu, <makamaka[at]cpan.org>
Copyright 2005-2007 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, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSON
CPAN shell
perl -MCPAN -e shell install JSON
For more information on module installation, please visit the detailed CPAN module installation guide.