Home Page Home Page
 Home | Linux Administration | Corporate Services | Resources | About Us Support Center
Monthly Server Management One-time Server Services Other Services
Network Administration Network Monitoring Network Security High Availability Load Balancing Data Backup and Recovery
Linux HOWTOs Linux Guides Linux Articles New RFCs Vulnerability list Linux Journal
Testimonials Partners Careers Contact Us Site Map
Common XML-RPC Interfaces

4. Common XML-RPC Interfaces

Several XML-RPC servers provide built-in methods. These aren't part of XML-RPC itself, but they make handy add-ons.

4.1. Introspection: Discovering Server APIs

Edd Dumbill proposed the following set of methods:

array system.listMethods ()
string system.methodHelp (string methodName)
array system.methodSignature (string methodName)

If a server supports these methods, you can ask it to print out some documentation:

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

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 XML-RPC Hacks page. Please feel free to add introspection support to other XML-RPC servers!

Various client-side tools (documentation generators, wrapper generators, and so on) can be found at the XML-RPC Hacks page as well.

4.2. Boxcarring: Sending Multiple Requests at Once

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:

array system.multicall (array calls)

You can find more information in the system.multicall RFC.

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 XML-RPC Hacks page.