1Mojolicious::Plugin::JsUosneRrpcCDoinstpraitbcuhteerdM(o3Pj)eorllicDioocuusm:e:nPtlautgiionn::JsonRpcDispatcher(3)
2
3
4

NAME

6       Mojolicious::Plugin::JsonRpcDispatcher - Plugin to allow Mojolicious to
7       act as a JSON-RPC server.
8

SYNOPSIS

10           # lib/your-application.pm
11
12           use base 'Mojolicious';
13           use MojoX::JSON::RPC::Service;
14
15           sub startup {
16               my $self = shift;
17               my $svc = MojoX::JSON::RPC::Service->new;
18
19               $svc->register(
20                   'sum',
21                   sub {
22                       my @params = @_;
23                       my $sum = 0;
24                       $sum += $_ for @params;
25                       return $sum;
26                   }
27               );
28
29               $self->plugin(
30                   'json_rpc_dispatcher',
31                   services => {
32                      '/jsonrpc' => $svc
33                   }
34               );
35          }
36
37       Or in lite-app:
38
39           use Mojolicious::Lite;
40           use MojoX::JSON::RPC::Service;
41
42           plugin 'json_rpc_dispatcher' => {
43               services => {
44                   '/jsonrpc' => MojoX::JSON::RPC::Service->new->register(
45                       'sum',
46                       sub {
47                           my @params = @_;
48                           my $sum    = 0;
49                           $sum += $_ for @params;
50                           return $sum;
51                       }
52                   )
53               }
54           };
55

DESCRIPTION

57       This plugin turns your Mojolicious or Mojolicious::Lite application
58       into a JSON-RPC 2.0 server.
59
60       The plugin understands the following parameters.
61
62       services (mandatory)
63           A pointer to a hash of service instances. See
64           MojoX::JSON::RPC::Service for details on how to write a service.
65
66               $self->plugin(
67                   'json_rpc_dispatcher',
68                    services => {
69                      '/jsonrpc'  => $svc,
70                      '/jsonrpc2' => $svc2,
71                      '/jsonrpc3' => $svc3,
72                      '/jsonrpc4' => $svc4
73                    }
74               );
75
76       exception_handler (optional)
77           Reference to a method that is called when an uncatched exception
78           occurs within a rpc call.  If exception_handler is not specified
79           then internal error is returned as result of the rpc call.
80
81               $self->plugin(
82                   'json_rpc_dispatcher',
83                    services => {
84                        '/jsonrpc'  => $svc,
85                    },
86                    exception_handler => sub {
87                        my ( $dispatcher, $err, $m ) = @_;
88
89                        # $dispatcher is the dispatcher Mojolicious::Controller object
90                        # $err is $@ received from the exception
91                        # $m is the MojoX::JSON::RPC::Dispatcher::Method object to be returned.
92
93                        $dispatcher->app->log->error(qq{Internal error: $err});
94
95                        # Fake invalid request
96                        $m->invalid_request('Faking invalid request');
97                        return;
98                   }
99               );
100

SEE ALSO

102       MojoX::JSON::RPC
103
104
105
106perl v5.36.0                      2022M-o0j7o-l2i2cious::Plugin::JsonRpcDispatcher(3)
Impressum