3

我正在尝试使用 Mojo 设置一个 jsonrpc 应用程序。我使用 REST 构建了一些控制器和相关模块,但后来决定我需要使用 JSONRPC。

使用来自http://metacpan.org/pod/Mojolicious::Plugin::JsonRpcDispatcher的以下代码

# lib/your-application.pm

use base 'Mojolicious';
use MojoX::JSON::RPC::Service;

sub startup {
    my $self = shift;
    my $svc = MojoX::JSON::RPC::Service->new;

    $svc->register(
        'sum',
        sub {
            my @params = @_;
            my $sum = 0;
            $sum += $_ for @params;
            return $sum;
        }
    );

    $self->plugin(
        'json_rpc_dispatcher',
        services => {
           '/jsonrpc' => $svc
        }
    );

我能够在一个文件中复制我的控制器 => 模型关系之一,其中控制器被移植到这种格式。

我想设置它,以便应用程序文件基本上可以将每个文件加载为类似于此页面显示的服务http://metacpan.org/pod/MojoX::JSON::RPC::Service

$svc->register(
    'sum',
    sub {
        my @params = @_;
        my $sum    = 0;
        $sum += $_ for @params;
        return $sum;
    }
);

换句话说,我的设想是重新设计每个控制器以类似于上面的代码片段,但将它们全部加载到应用程序模块中。像这样:

## Then in Mojolicious application
$self->plugin(
    'json_rpc_dispatcher',
    services => {
        '/jsonrpc'  => $svc,
    }
);

是否可以创建一个像上面的代码一样设置功能的文件,然后将它们作为服务器加载到应用程序模块中?MojoX::JSON::RPC::Service 似乎提供了这一点。我一直无法让它工作。

4

0 回答 0