4. 一般的な XML-RPC インターフェース

いくつかの XML-RPC サーバはビルトインメソッドを提供します。そ れらは XML-RPC それ自身のものではありませんが、とても便利な追加機能 です。

4.1. イントロスペクション - サーバの API を掘り出す

Edd Dumbill は次のメソッドの組みを提案し ました。

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

サーバがこれらのメソッドをサポートする場合、あるドキュメンテー ションを印字するためにサーバへ問い合わせができます -

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

これらのメソッドは PHP および C、Microsoft .NET で書かれたサー バによりサポートされています。部分的なイントロスペクションのサポー トは最近になって UserLand Frontier にも組み込まれています。Perl お よび Python, Java 用のイントロスペクションのサポートは XML-RPC Hacks のページで入手できます。どうぞ、遠慮なくイ ントロスペクションのサポートを他の XML-RPC サーバに追加してくださ い!

様々なクライアント側のツール (ドキュメンテーション、ラッパー 生成等等) も XML-RPC Hacks のページで見つけられます。

4.2. Boxcarring - 同時に複数の要求を送る

多くのファンクションコールをする XML-RPC クライアントを書い ているなら、インターネットのバックボーンのレーテンシー (待ち時間) が短いおかげで、応答時間がかなり速いことを気づくかもしれません。い くつかのサーバは次の機能を使うことで複数の要求を一括処理 (batching) できます。

array system.multicall (array calls)

追加情報は system.multicall RFC より得てください。

現在、このメソッドは C および UserLand Frontier で書かれたサー バでサポートされています。Python および Perl で書かれたサーバは XML-RPC Hacks のページにあるプログラムを利用できます。