JSON::...r::CGI(3pm)
π NAME π
JSON::RPC::Legacy::Server::CGI β JSON-RPC sever for CGI. Bestie, this is the CGI-flavored server from the legacy JSON::RPC fam, and it lives in the User Contributed Perl Documentation as JSON::...r::CGI(3pm). The package name is long, the energy is immaculate, and yes, we're doing this. π
β¨ SYNOPSIS β¨
Okay so here's the whole group-chat plan: you set up the server in your CGI script, then write your app class with Public methods. Copy-paste core, exactly as the page serves it:
# CGI version
#--------------------------
# In your CGI script
use JSON::RPC::Legacy::Server::CGI;
my $server = JSON::RPC::Legacy::Server::CGI->new;
$server->dispatch('MyApp')->handle();
# or an array ref setting
$server->dispatch( [qw/MyApp MyApp::Subclass/] )->handle();
# or a hash ref setting
$server->dispatch( {'/jsonrpc/API' => 'MyApp'} )->handle();
#--------------------------
# In your application class
package MyApp;
use base qw(JSON::RPC::Legacy::Procedure); # Perl 5.6 or more than
sub echo : Public { # new version style. called by clients
# first argument is JSON::RPC::Legacy::Server object.
return $_[1];
}
sub sum : Public(a:num, b:num) { # sets value into object member a, b.
my ($s, $obj) = @_;
# return a scalar value or a hashref or an arryaref.
return $obj->{a} + $obj->{b};
}
sub a_private_method : Private {
# ... can't be called by client
}
sub sum_old_style { # old version style. taken as Public
my ($s, @arg) = @_;
return $arg[0] + $arg[1];
}
πΈ DESCRIPTION πΈ
So like, what does this thing actually do? It's the CGI server-side bestie that:
- 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.
And that's the tea. Well, you write your procedure code only. No cap, that's the whole assignment, bestie. π«Ά
π¦ METHODS π¦
These are inherited from the JSON::RPC::Legacy::Server methods basically, bestie. The ones below are implemented in JSON::RPC::Legacy::Server::CGI:
newβ creates a newJSON::RPC::Legacy::Server::CGIobject. Brand-new server object, main character energy.retrieve_json_from_postβ retrieves a JSON request from the body in POST method.retrieve_json_from_getβ in the protocol v1.1,'GET'request method is also allowable. It retrieves a JSON request from the query string in GET method.responseβ returns a response JSON data to a client.cgiβ returns the CGI object.
π SEE ALSO π
Go check these out, iykyk:
JSON::RPC::Legacy::ServerJSON::RPC::Legacy::ProcedureJSON<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html><http://json-rpc.org/wiki/specification>
π AUTHOR π
Makamaka Hannyaharamitu, <makamaka[at]cpan.org> β icon, legend, author bestie. π
π COPYRIGHT AND LICENSE π
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.
Okay bestie, that's the page. Source/version vibe check: perl v5.42.0, dated 2015-08-27, on JSON::...r::CGI(3pm). Slay and goodbye. π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-JSON-RPC 1.06-bp160.1.11 Β· Artistic-1.0 or GPL-1.0+
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms