NAME¶
JSON::RPC::Server::Apache2 - JSON-RPC sever for mod_perl2
SYNOPSIS¶
# In apache conf
PerlRequire /your/path/start.pl
PerlModule MyApp
<Location /jsonrpc/API>
SetHandler perl-script
PerlResponseHandler JSON::RPC::Server::Apache
PerlSetVar dispatch "MyApp"
PerlSetVar return_die_message 0
</Location>
#--------------------------
# 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];
}
DESCRIPTION¶
Gets a client request.
Parses its JSON data.
Passes the server object and the object decoded from the JSON data to your
procedure (method).
Takes your returned value (scalar or arrayref or hashref).
Sends a response.
Well, you write your procedure code only.
METHODS¶
They are inherited from the JSON::RPC::Server methods basically. The below
methods are implemented in JSON::RPC::Server::Apache2.
- new
- Creates new JSON::RPC::Server::Apache2 object.
- handle
- Runs server object and returns a response.
- retrieve_json_from_post
- retrieves a JSON request from the body in POST method.
- retrieve_json_from_get
- In the protocol v1.1, 'GET' request method is also
allowable. it retrieves a JSON request from the query string in GET
method.
- response
- returns a response JSON data to a client.
SEE ALSO¶
JSON::RPC::Server,
JSON::RPC::Procedure,
JSON,
<
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.