NAME
JSON::RPC::Dispatcher::ClassMapping - Expose all public methods of classes as RPC methods
SYNOPSIS
# in app.psgi
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 adispatch
that looks like this:{
'Util'
=>
'Foo::Service::Util'
,
'Calendar'
=>
'Bar::Baz'
}
So then, calling the method
Util.get
will callFoo::Service::Util->get
. CallingCalendar.create
will callBar::Baz->create
. You don't have to pre-load the Perl modules, JSON::RPC::Dispatcher::ClassMapping will load them for you.
AUTHOR
Sherwin Daganato <sherwin@daganato.com>
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.