11.20.1 Oggetti ServerProxy

Un'istanza ServerProxy ha un metodo corrispondente per ogni chiamata di procedura remota accettata dal server XML-RPC. La chiamata al metodo esegue un RPC, comunicato sia dal nome che da una firma di argomento (per esempio lo stesso nome di metodo può essere sovrascritto con firme di argomenti multipli). L'RPC finisce restituendo un valore, che dovrebbe essere o il dato restituito come tipo conforme o un oggetto Fault o ProtocolError che indicano un errore.

I server che supportano le API di introspezione XML, supportano anche alcuni metodi comuni raggruppati sotto la voce membri system riservati:

system.listMethods( )
Questo metodo restituisce una lista di stringhe, una per ogni (non di sistema) metodo supportato dal server XML-RPC.

system.methodSignature( name)
Questo metodo prende un parametro, il nome di un metodo implementato dal server XML-RPC. Restituisce un array di possibili firme per questo metodo. Una firma è un array di tipi. Il primo di questi tipi è il tipo restituito dal metodo, il resto sono parametri.

Siccome sono permesse firme multiple (come la sovrascrittura), questo metodo restituisce una lista di firme diverse anziché una sola.

Le firme, sono ristrette ai parametri del livello principale che si attendono dal metodo. Per esempio, se un metodo attende un array di strutture come parametro, e restituisce una stringa, la sua firma è semplicemente "string, array". Se attende tre interi e restituisce una stringa, la sua firma è "string, int, int, int".

Se non sono definite firme per questo metodo, viene restituito un valore non-array. In Python questo significa che il tipo del valore restituito è qualcosa di diverso da quello lista.

system.methodHelp( name)
Questo metodo prende un parametro, il nome di un metodo implementato dal server XML-RPC. Restituisce una docstring che descrive l'uso di quel metodo. Se non è disponibile alcuna stringa, viene restituita una stringa vuota. La docstring può contenere marcatori HTML.

I metodi di introspezione vengono correntemente supportati dai server scritti in PHP, C e Microsoft .NET. Il supporto parziale all'introspezione è incluso nei recenti update di UserLand Frontier. Il supporto per l'introspezione per Perl, Python e Java è disponibilie nelle pagine di Hacking di XML-RPC.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.