File: README

package info (click to toggle)
libjson-rpc-perl 0.96-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 156 kB
  • sloc: perl: 816; makefile: 2
file content (108 lines) | stat: -rw-r--r-- 3,003 bytes parent folder | download | duplicates (2)
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
JSON::RPC version 0.96
=================
NAME
    JSON::RPC - Perl implementation of JSON-RPC 1.1 protocol

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 <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 - JSONRPC::Transport::HTTP and 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.

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 JSON::RPC::Server::CGI, JSON::RPC::Server::Daemon,
    JSON::RPC::Server::Apache2 JSON::RPC::Client and JSON::RPC::Procedure.

ABOUT NEW VERSION
    supports JSON-RPC protocol v1.1

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.