NAME
RPC::Any::Server::JSONRPC - A basic JSON-RPC server
SYNOPSIS
use RPC::Any::Server::JSONRPC;
# Create a server where calling Foo.bar will call My::Module->bar.
my $server = RPC::Any::Server::JSONRPC->new(
dispatch => { 'Foo' => 'My::Module' },
default_version => '2.0',
);
# Read JSON from STDIN and print JSON to STDOUT.
print $server->handle_input();
DESCRIPTION
This is a server that implements the various JSON-RPC specifications. It supports JSON-RPC 1.0, 1.1, and 2.0. It uses JSON::RPC::Common as its backend for parsing input and producing output, and so it supports everything that that module supports.
This is a basic server that just takes JSON as input to handle_input
, and produces JSON as the output from handle_input
. It doesn't understand HTTP headers or anything like that, and it doesn't produce HTTP headers. For that, see RPC::Any::Server::JSONRPC::HTTP or RPC::Any::Server::JSONRPC::CGI.
See RPC::Any::Server for a basic description of how servers work in RPC::Any.
JSONRPC SERVER ATTRIBUTES
These are additional attributes beyond what is specified in RPC::Any::Server that are available for a JSON-RPC server. These can all be specified during new
or set like $server->method($value)
. They are all optional.
default_version
-
This is a string specifying the version to use for error messages in situations where the server doesn't know the JSON-RPC version of the incoming message. (This happens when there is an error parsing the JSON-RPC input--we haven't parsed the input, so we don't know what JSON-RPC version is in use.) This defaults to
2.0
if not specified. parser
-
This is a JSON::RPC::Common::Marshal::Text instance that is used to parse incoming JSON and produce output JSON.