/usr/share/perl5/JSON/RPC/Legacy.pm is in libjson-rpc-perl 1.03-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | package JSON::RPC::Legacy;
use strict;
1;
__END__
=pod
=head1 NAME
JSON::RPC - Perl implementation of JSON-RPC 1.1 protocol
=head1 DESCRIPTION
JSON-RPC is a stateless and light-weight remote procedure call (RPC)
protocol for inter-networking applications over HTTP. It uses JSON
as the data format for of all facets of a remote procedure call,
including all application data carried in parameters.
quoted from L<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html>.
This module was in JSON package on CPAN before.
Now its interfaces was completely changed.
The old modules - L<JSONRPC::Transport::HTTP> and L<Apache::JSONRPC> are deprecated.
Please try to use JSON::RPC::Server and JSON::RPC::Client which support both JSON-RPC
protocol version 1.1 and 1.0.
=head1 EXAMPLES
CGI version.
#--------------------------
# In your application class
package MyApp;
use base qw(JSON::RPC::Procedure); # Perl 5.6 or more than
sub echo : Public { # new version style. called by clients
# first argument is JSON::RPC::Server object.
return $_[1];
}
sub sum : Public(a:num, b:num) { # sets value into object member a, b.
my ($s, $obj) = @_;
# return a scalar value or a hashref or an arryaref.
return $obj->{a} + $obj->{b};
}
sub a_private_method : Private {
# ... can't be called by client
}
sub sum_old_style { # old version style. taken as Public
my ($s, @arg) = @_;
return $arg[0] + $arg[1];
}
#--------------------------
# In your triger script.
use JSON::RPC::Server::CGI;
use MyApp;
# simple
JSON::RPC::Server::CGI->dispatch('MyApp')->handle();
# or
JSON::RPC::Server::CGI->dispatch([qw/MyApp FooBar/])->handle();
# or INFO_PATH version
JSON::RPC::Server::CGI->dispatch({'/Test' => 'MyApp'})->handle();
#--------------------------
# Client
use JSON::RPC::Client;
my $client = new JSON::RPC::Client;
my $uri = 'http://www.example.com/jsonrpc/Test';
my $obj = {
method => 'sum', # or 'MyApp.sum'
params => [10, 20],
};
my $res = $client->call( $uri, $obj )
if($res){
if ($res->is_error) {
print "Error : ", $res->error_message;
}
else {
print $res->result;
}
}
else {
print $client->status_line;
}
# or
$client->prepare($uri, ['sum', 'echo']);
print $client->sum(10, 23);
See to L<JSON::RPC::Server::CGI>, L<JSON::RPC::Server::Daemon>, L<JSON::RPC::Server::Apache>
L<JSON::RPC::Client> and L<JSON::RPC::Procedure>.
=head1 ABOUT NEW VERSION
=over
=item supports JSON-RPC protocol v1.1
=back
=head1 TODO
=over
=item Document
=item Examples
=item More Tests
=back
=head1 AUTHOR
Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
=head1 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.
=cut
|