oracular (3) Frontier::Responder.3pm.gz

Provided by: libfrontier-rpc-perl_0.07b4-7.1_all bug

NAME

       Frontier::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 recommended 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 ALSO

       perl(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.