私は zabbix を使用しており、zabbix API とやり取りするためのインターフェイスを作成しています。zabbix は jsonrpc インターフェイスを公開しているので、MojoX::JSON::RPC::Service を使用することにしました。私が直面している問題は、Mojolicious::Controller オブジェクトを期待している Mojolicious::Controllers を使用して記述された他のサービスとの対話に直面していることです。MojoX::JSON::RPC::Service を使用する場合、利用可能な Mojolicious::Controller オブジェクトはありません。
my $obj = $rpc_obj->register(
'retrieve',
sub {
# do stuff
},
{ with_mojo_tx => 1 }
);
それは「検索」と呼ばれるルートを登録します。ルートがアクセスされ、匿名サブルーチンが実行されると、サブルーチンは Mojo::Transaction::HTTP オブジェクトにのみアクセスできます。
そのため、プラグインやスタッシュ、Mojolicious が提供するその他のものを使用するためのアプリにアクセスすることはできません。Mojolicious::Controller を MojoX::JSON::RPC::Service に組み込む方法はありますか?
Mojolicious::Controller を使用するように書き直すこともできますが、可能であればそれを避けようとしています。