Frontier::Responder(3)User Contributed Perl DocumentatioFrontier::Responder(3)NAMEFrontier::Responder - Create XML-RPC listeners for normal CGI processes
SYNOPSIS
use Frontier::Responder;
my $res = Frontier::Responder->new( methods => {
add => sub{ $_[0] + $_[1] },
cat => sub{ $_[0] . $_[1] },
},
);
print $res->answer;
DESCRIPTION
Use Frontier::Responder whenever you need to create an XML-RPC listener
using a standard CGI interface. To be effective, a script using this
class will often have to be put a directory from which a web server is
authorized to execute CGI programs. An XML-RPC listener using this
library will be implementing the API of a particular XML-RPC
application. Each remote procedure listed in the API of the user
defined application will correspond to a hash key that is defined in
the "new" method of a Frontier::Responder object. This is exactly the
way Frontier::Daemon works as well. In order to process the request
and get the response, the "answer" method is needed. Its return value
is XML ready for printing.
For those new to XML-RPC, here is a brief description of this protocol.
XML-RPC is a way to execute functions on a different machine. Both the
client's request and listeners response are wrapped up in XML and sent
over HTTP. Because the XML-RPC conversation is in XML, the
implementation languages of the server (here called a listener), and
the client can be different. This can be a powerful and simple way to
have very different platforms work together without acrimony. Implicit
in the use of XML-RPC is a contract or API that an XML-RPC listener
implements and an XML-RPC client calls. The API needs to list not only
the various procedures that can be called, but also the XML-RPC
datatypes expected for input and output. Remember that although Perl is
permissive about datatyping, other languages are not. Unforuntately,
the XML-RPC spec doesn't say how to document the API. It is recomended
that the author of a Perl XML-RPC listener should at least use POD to
explain the API. This allows for the programmatic generation of a
clean web page.
METHODS
new( OPTIONS )
This is the class constructor. As is traditional, it returns a
blessed reference to a Frontier::Responder object. It expects
arguments to be given like a hash (Perl's named parameter
mechanism). To be effective, populate the "methods" parameter with
a hashref that has API procedure names as keys and subroutine
references as values. See the SYNOPSIS for a sample usage.
answer()
In order to parse the request and execute the procedure, this
method must be called. It returns a XML string that contains the
procedure's response. In a typical CGI program, this string will
simply be printed to STDOUT.
SEE ALSOperl(1), Frontier::RPC2(3)
<http://www.scripting.com/frontier5/xml/code/rpc.html>
AUTHOR
Ken MacLeod <ken@bitsko.slc.ut.us> wrote the underlying RPC library.
Joe Johnston <jjohn@cs.umb.edu> wrote an adaptation of the
Frontier::Daemon class to create this CGI XML-RPC listener class.
perl v5.10.1 2002-08-02 Frontier::Responder(3)