Catalyst::Plugin::JSONRPC - Dispatch JSON-RPC methods with Catalyst
# include it in plugin list use Catalyst qw/JSONRPC/; # Public action to redispatch sub entrypoint : Global { my ( $self, $c ) = @_; $c->json_rpc; } # Methods with Remote attribute in the same class sub echo : Remote { my ( $self, $c, @args ) = @_; return join ' ', @args; }
Catalyst::Plugin::JSONRPC is a Catalyst plugin to add JSON-RPC methods in your controller class. It uses a same mechanism that XMLRPC plugin does and actually plays really nicely.
Call this method from a controller action to set it up as a endpoint for RPC methods in the same class.
Supported attributes:
name of class to dispatch (defaults to current one)
method to dispatch to (overrides JSON-RPC method name)
This module uses Remote attribute, which indicates that the action can be dispatched through RPC mechanisms. You can use this Remote attribute and integrate JSON-RPC and XML-RPC together, for example:
Remote
sub xmlrpc_endpoint : Regexp('^xml-rpc$') { my($self, $c) = @_; $c->xmlrpc; } sub jsonrpc_endpoint : Regexp('^json-rpc$') { my($self, $c) = @_; $c->json_rpc; } sub add : Remote { my($self, $c, $a, $b) = @_; return $a + $b; }
Now add RPC method can be called either as JSON-RPC or XML-RPC.
add
Six Apart, Ltd. <cpan@sixapart.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Thanks to Sebastian Riedel for his Catalyst::Plugin::XMLRPC, from which a lot of code is copied.
Catalyst::Plugin::XMLRPC, JSON, JSONRPC
JSON
JSONRPC
To install Catalyst::Plugin::JSONRPC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Plugin::JSONRPC
CPAN shell
perl -MCPAN -e shell install Catalyst::Plugin::JSONRPC
For more information on module installation, please visit the detailed CPAN module installation guide.