Manipuler un serveur XML/RPC en Javascript
Le 2008-04-16 15:16:34Vous avez déjà tenté de récupérer les données provenant d'un serveur XML/RPC en JavaScript ?
Je l'ai fait ces derniers jours et ayant perdu pas mal de temps à tenter de comprendre comment faire fonctionner l'API JSXMLRPC, je vous propose ici un mini tutoriel pour son utilisation :-)
Tout d'abord, ayant constaté et du corriger plusieurs bugs dans cette librairie, j'ai décidé de mettre mes modifications en ligne. Vous pouvez la télécharger ici
Où bien en SVN avec la commande suivante :
svn checkout http://twitterbook.googlecode.com/svn/trunk/jsxmlrpc twitterbook-read-only
Tout d'abord, implémentons l'outil dans notre page.
<script type="text/javascript" src="/js/lib/xmlrpc_lib.js" />
<script type="text/javascript" src="js/lib/xmlrpc_wrappers.js" />
Supposons donc maintenant que notre serveur est situé à l'adresse example.com:2504 et que nous souhaitions appeler la méthode "tralala".
Nous allons d'abord initialiser un client pour ce serveur :
var client = new xmlrpc_client('/', 'example.com', '2504');
Puis nous pouvons faire un appel à notre méthode.
var tralala = wrap_xmlrpc_method(client, 'tralala');
var t = tralala(paramètre);
Notre requête est correctement transmise. Nous n'avons plus qu'à traiter les données retournées.
Dans le cas d'un paramètre unique retourné, celui-ci sera directement rendu.
Dans le cas de multiples paramètres, ils seront accessibles comme des variables de classe javascript.
Ainsi si notre méthode tralala nous retourne un paramètre "id" et un paramètre "nom", nous pourrons faire :
alert(t.id);
pour afficher cet identifiant.
Dans le cas où une erreur a été détectée, le paramètre errstr contient le texte de celle-ci (et errno son numéro).
Dans le cas où il n'y a pas d'erreur, celui-ci n'est pas défini.
Nous pouvons donc faire une fonction du type :
var call: function(method, param) {
var client = new xmlrpc_client('/', 'example.com', '2504');
var explore = wrap_xmlrpc_method(client, 'method);
var t = explore(param);
if (t.errstr != undefined) {
return false;
} else return t;
}
Publie : Développement
Tags : développement xml javascript o2sources rpc
