GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
JSON::RPC::Legacy::Server(3) User Contributed Perl Documentation JSON::RPC::Legacy::Server(3)

JSON::RPC::Server - Perl implementation of JSON-RPC sever

 # CGI version
 use JSON::RPC::Legacy::Server::CGI;
 
 my $server = JSON::RPC::Legacy::Server::CGI->new;

 $server->dispatch_to('MyApp')->handle();
 
 
 
 # Apache version
 # In apache conf
 
 PerlRequire /your/path/start.pl
 PerlModule MyApp
 
 <Location /jsonrpc/API>
      SetHandler perl-script
      PerlResponseHandler JSON::RPC::Legacy::Server::Apache
      PerlSetVar dispatch "MyApp"
      PerlSetVar return_die_message 0
 </Location>
 
 
 
 # Daemon version
 use JSON::RPC::Legacy::Server::Daemon;
 
 JSON::RPC::Legacy::Server::Daemon->new(LocalPort => 8080);
                          ->dispatch({'/jsonrpc/API' => 'MyApp'})
                          ->handle();
 
 
 
 # FastCGI version
 use JSON::RPC::Legacy::Server::FastCGI;
 
 my $server = JSON::RPC::Legacy::Server::FastCGI->new;
 
    $server->dispatch_to('MyApp')->handle();

Gets a client request.

Parses its JSON data.

Passes the server object and the object decoded from the JSON data to your procedure (method).

Takes your returned value (scalar or arrayref or hashref).

Sends a response.

Well, you write your procedure code only.

new
Creates new JSON::RPC::Legacy::Server object.
dispatch($package)
dispatch([$package1, $package1, ...])
dispatch({$path => $package, ...})
Sets your procedure module using package name list or arrayref or hashref. Hashref version is used for path_info access.
dispatch_to
An alias to "dispatch".
handle
Runs server object and returns a response.
raise_error(%hash)
 return $server->raise_error(
    code => 501,
    message => "This is error in my procedure."
 );
    

Sets an error. An error code number in your procedure is an integer between 501 and 899.

json
Setter/Getter to json encoder/decoder object. The default value is JSON object in the below way:

 JSON->new->utf8
    

In your procedure, changes its behaviour.

 $server->json->utf8(0);
    

The JSON coder creating method is "create_json_coder".

version
Setter/Getter to JSON-RPC protocol version used by a client. If version is 1.1, returns 1.1. Otherwise returns 0.
charset
Setter/Getter to charset. Default is 'UTF-8'.
content_type
Setter/Getter to content type. Default is 'application/json'.
return_die_message
When your program dies in your procedure, sends a return object with error message 'Procedure error' by default.

If this option is set, uses "die" message.

 sub your_procedure {
     my ($s) = @_;
    $s->return_die_message(1);
    die "This is test.";
 }
    
retrieve_json_from_post
It is used by JSON::RPC::Legacy::Server subclass.
retrieve_json_from_get
In the protocol v1.1, 'GET' request method is also allowable.

It is used by JSON::RPC::Legacy::Server subclass.

response
It is used by JSON::RPC::Legacy::Server subclass.
request
Returns HTTP::Request object.
path_info
Returns PATH_INFO.
max_length
Returns max content-length to your application.
translate_error_message
Implemented in your subclass. Three arguments (server object, error code and error message) are passed. It must return a message.

 sub translate_error_message {
     my ($s, $code, $message) = @_;
     return $translation_jp_message{$code};
 }
    
create_json_coder
(Class method) Returns a JSON de/encoder in "new". You can override it to use your favorite JSON de/encode.

When a client call a procedure (method) name 'system.foobar', JSON::RPC::Legacy::Server look up MyApp::system::foobar.

<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#ProcedureCall>

<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html#ServiceDescription>

There is JSON::RPC::Legacy::Server::system::describe for default response of 'system.describe'.

JSON

<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html>

<http://json-rpc.org/wiki/specification>

Makamaka Hannyaharamitu, <makamaka[at]cpan.org>

Copyright 2007-2008 by Makamaka Hannyaharamitu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2022-04-07 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.