Sherwin Daganato > JSON-RPC-Dispatcher-ClassMapping-0.03 > JSON::RPC::Dispatcher::ClassMapping

Download:
JSON-RPC-Dispatcher-ClassMapping-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source  

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 <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.

SEE ALSO ^

RPC::Any::Server SOAP::Server

syntax highlighting: