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

コントローラーがこの形式に移植された Controller => Model 関係の 1 つを 1 つのファイルで複製することができました。

アプリケーションファイルが基本的に、このページに表示されるものと同様のサービスとして各ファイルをロードできるように設定したいと思います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