Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 7193

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<HTML
><HEAD
><TITLE
>Common XML-RPC Interfaces</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
"><LINK
REL="HOME"
TITLE="XML-RPC HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="XML-RPC vs. Other Protocols"
HREF="xmlrpc-howto-competition.html"><LINK
REL="NEXT"
TITLE="A Sample API: sumAndDifference"
HREF="xmlrpc-howto-api.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>XML-RPC HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="xmlrpc-howto-competition.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="xmlrpc-howto-api.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="xmlrpc-howto-interfaces"
>4. Common XML-RPC Interfaces</A
></H1
><P
>Several XML-RPC servers provide built-in methods. These aren't
    part of XML-RPC itself, but they make handy add-ons.</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="xmlrpc-howto-api-introspection"
>4.1. Introspection: Discovering Server APIs</A
></H2
><P
>Edd Dumbill <A
HREF="http://xmlrpc.usefulinc.com/doc/reserved.html"
TARGET="_top"
>proposed</A
>
      the following set of methods:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="synopsis"
><SPAN
CLASS="returnvalue"
>array</SPAN
> <TT
CLASS="function"
>system.listMethods</TT
> ()
<SPAN
CLASS="returnvalue"
>string</SPAN
> <TT
CLASS="function"
>system.methodHelp</TT
> (<SPAN
CLASS="type"
>string</SPAN
> <TT
CLASS="parameter"
><I
>methodName</I
></TT
>)
<SPAN
CLASS="returnvalue"
>array</SPAN
> <TT
CLASS="function"
>system.methodSignature</TT
> (<SPAN
CLASS="type"
>string</SPAN
> <TT
CLASS="parameter"
><I
>methodName</I
></TT
>)</PRE
></TD
></TR
></TABLE
><P
>If a server supports these methods, you can ask it to print out
      some documentation:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="programlisting"
>import xmlrpclib
server = xmlrpclib.Server("http://xmlrpc-c.sourceforge.net/api/sample.php")
for method in server.system.listMethods():
    print method
    print server.system.methodHelp(method)
    print</PRE
></TD
></TR
></TABLE
><P
>These methods are currently supported by servers written in
      PHP, C and Microsoft .NET.  Partial introspection support is included
      in recent updates to UserLand Frontier.  Introspection support for
      Perl, Python and Java is available at the <A
HREF="http://xmlrpc-c.sourceforge.net/hacks.php"
TARGET="_top"
>XML-RPC
      Hacks</A
> page.  Please feel free to add introspection support to
      other XML-RPC servers!</P
><P
>Various client-side tools (documentation generators, wrapper
      generators, and so on) can be found at the XML-RPC Hacks page as
      well.</P
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="xmlrpc-howto-api-boxcarring"
>4.2. Boxcarring: Sending Multiple Requests at Once</A
></H2
><P
>If you're writing an XML-RPC client which makes lots of small
      function calls, you may discover that your round-trip time is fairly
      high, thanks to Internet backbone latency. Some servers allow you to
      batch up multiple requests using the following function:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="synopsis"
><SPAN
CLASS="returnvalue"
>array</SPAN
> <TT
CLASS="function"
>system.multicall</TT
> (<SPAN
CLASS="type"
>array</SPAN
> <TT
CLASS="parameter"
><I
>calls</I
></TT
>)</PRE
></TD
></TR
></TABLE
><P
>You can find more information in the <A
HREF="http://www.xmlrpc.com/discuss/msgReader$1208"
TARGET="_top"
>system.multicall
      RFC</A
>.</P
><P
>This method is currently supported by servers written in C and
      UserLand Frontier.  Servers written in Python and Perl can use the
      code at the <A
HREF="http://xmlrpc-c.sourceforge.net/hacks.php"
TARGET="_top"
>XML-RPC
      Hacks</A
> page.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="xmlrpc-howto-competition.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="xmlrpc-howto-api.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>XML-RPC vs. Other Protocols</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>A Sample API: <TT
CLASS="function"
>sumAndDifference</TT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>