Tatsuhiko Miyagawa > Catalyst-Plugin-JSONRPC > Catalyst::Plugin::JSONRPC

Download:
Catalyst-Plugin-JSONRPC-0.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.01   Source  

NAME ^

Catalyst::Plugin::JSONRPC - Dispatch JSON-RPC methods with Catalyst

SYNOPSIS ^

  # 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;
  }

DESCRIPTION ^

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.

METHODS

$c->json_rpc(%attrs)

Call this method from a controller action to set it up as a endpoint for RPC methods in the same class.

Supported attributes:

class

name of class to dispatch (defaults to current one)

method

method to dispatch to (overrides JSON-RPC method name)

REMOTE ACTION ATTRIBUTE

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:

  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.

AUTHOR & LICENSE ^

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 ^

Thanks to Sebastian Riedel for his Catalyst::Plugin::XMLRPC, from which a lot of code is copied.

SEE ALSO ^

Catalyst::Plugin::XMLRPC, JSON, JSONRPC

syntax highlighting: