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 はそれを提供しているようです。私はそれを機能させることができませんでした。