1

「 Standard Python Library by Example 」に従って XMLRPCServer を実装しています。クライアントがメソッドの署名を確認できるようにしたいのですが、それを期待していました

proxy = xmlrpclib.ServerProxy('http://%s:%s' % (host, port))
print proxy.system.methodSignature('list')

(クライアント コード) メソッドの署名が表示されます。

ただし、「署名はサポートされていません」を返します

SimpleXMLRPCServerのコードは次のとおりです。

def system_methodSignature(self, method_name):
    """system.methodSignature('add') => [double, int, int]

    Returns a list describing the signature of the method. In the
    above example, the add method takes two integers as arguments
    and returns a double result.

    This server does NOT support system.methodSignature."""

    # See http://xmlrpc.usefulinc.com/doc/sysmethodsig.html

    return 'signatures not supported'

メソッド署名を有効にする簡単な方法はありますか? または SimpleXMLRPCServer は本当にそれらをサポートしていませんか? methodSignatures をサポートする実装はありますか?

知っておくとよいでしょう: サーバーがサポートしていないのに、なぜ system_methodSignatures メソッドが含まれているのですか? XMLRPC 仕様?

4

1 に答える 1

2

イントロスペクション関数を登録します。

詳細はこちら: http://www.doughellmann.com/PyMOTW/SimpleXMLRPCServer/#introspection-api

または、Django のこのソリューションを参照してください: http://code.google.com/p/django-xmlrpc/wiki/MethodSignatures

于 2012-08-23T14:17:29.927 に答える