Provided by: libur-perl_0.470+ds-1_all
UR::Service::JsonRpcServer - A self-contained JSON-RPC server for UR namespaces
use lib '/path/to/your/moduletree'; use YourNamespace; my $rpc = UR::Service::JsonRpcServer->create(host => 'localhost', port => '8080', api_root => 'URapi', docroot => '/html/pages/path', ); $rpc->process();
This is a class containing an implementation of a JSON-RPC server to respond to requests involving UR-based namespaces and their objects. It uses Net::HTTPServer as the web server back-end library. Incoming requests are divided into two major categories: http://server:port/"api-root"/class/Namespace/Class This is the URL for a call to a class metnod on "Namespace::Class" http://server:port/"api-root"/obj/Namespace/Class/id This is the URL for a method call on an object of class Namespace::Class with the given id
The constructor takes the following named parameters: host The hostname to listen on. This can be an ip address, host name, or undef. The default value is '0.0.0.0'. This argument is passed along verbatim to the Net::HTTPServer constructor. port The TCP port to listen on. The default value is 8080. This argument is passed along verbatim to the Net::HTTPServer constructor. api_root The root path that the http server will listen for requests on. The constructor registers two paths with the Net::HTTPServer with RegisterRegex() for /"api_root"/class/* and /"api_root"/obj/* to respond to class and instance metod calls. All other arguments are passed along to the Net::HTTPServer constructor.
$rpc->process() A wrapper to the Net::HTTPServer Process() method. With no arguments, this call will block forever from the perspective of the caller, and process all http requests coming in. You can optionally pass in a timeout value in seconds, and it will respond to requests for the given number of seconds before returning.