NAME
JSON::RPC::Dispatcher::ClassMapping - Expose all public methods of
classes as RPC methods
SYNOPSIS
# in app.psgi
use JSON::RPC::Dispatcher::ClassMapping;
my $server = JSON::RPC::Dispatcher::ClassMapping->new(
dispatch => {
Foo => 'My::Module',
Bar => 'My::Another::Module',
},
);
$server->to_app;
DESCRIPTION
This module is a wrapper for JSON::RPC::Dispatcher and provides an easy
way to expose all public methods of classes as JSON-RPC methods. It
treats methods with a leading underscore as private methods.
ATTRIBUTES
*dispatch*
This is a hashref that maps "package names" in RPC method requests
to actual Perl module names (in a format like "My::Module::Name").
For example, let's say that you have a "dispatch" that looks like
this:
{
'Util' => 'Foo::Service::Util',
'Calendar' => 'Bar::Baz'
}
So then, calling the method "Util.get" will call
"Foo::Service::Util->get". Calling "Calendar.create" will call
"Bar::Baz->create". You don't have to pre-load the Perl modules,
JSON::RPC::Dispatcher::ClassMapping will load them for you.
AUTHOR
Sherwin Daganato <
[email protected]>
Based on the dispatcher of RPC::Any::Server by Max Kanat-Alexander.
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
RPC::Any::Server SOAP::Server