Que votre application XUL soit une ApplisWeb ou desktop, il est possible de dialoguer avec un serveur web, pour entre autre accéder à des services web.
Un service web, c'est un service que propose un serveur web. Ce service peut être le stockage de données, l'execution d'un traitement sur le serveur, une demande d'envoi de donnée etc..
Ainsi, un service web permet l'échange de donnée entre un client et un serveur web, en utilisant, puisque c'est du web, HTTP.
Un service web est donc caractérisé :
Il existe de ce fait plusieurs protocoles, dont certains sont des standards et la plupart utilise un format XML pour les données : SOAP, XML-RPC, Wddx etc..
Vous pouvez aussi définir votre propre format d'échange, qui peut être non xml, et votre propre protocole. La simple récupération d'un contenu dynamique à un URL peut ainsi être considéré comme un service web trés (trés) basique. C'est la méthode plus connue depuis quelques temps sous le nom d'Ajax.
La plateforme Mozilla met à disposition du programmeur, un objet, xmlHttpRequest, qui permet de faire des requêtes HTTP vers un serveur web et de récuperer les données renvoyées (sous forme textuelle ou xml). En clair, vous pouvez faire de l'Ajax (Asynchronous JavaScript and XML).
Voir la page expliquant comment utiliser XmlHttpRequest.
Il existe d'autres protocoles de services web. Ils ne sont pas implementé dans Mozilla. Cependant ce n'est pas trés difficile d'utiliser d'autres protocoles. Il suffit pour la plupart :
Il existe des méthodes bibliothèques javascript (utilisant notamment les méthodes escape et unescape) pour l'encodage et le décodage des données, vous avez donc juste la plupart du temps d'appeler ces bibliothèques et d'appeler xmlHttpRequest.
Voici quelques formats utilisés sur le web en plus de SOAP et XML-RPC:
Il existe des outils permettant d'invoquer des services web de manière simplifié, cachant toute la mécanique bas niveau (xmlhttprequest &co).
N'oubliez pas les templates XUL ! C'est une forme de services Web :
1) Vous indiquez une URL dans le template. 2) Le serveur vous renvoi des données au format RDF 3) Le moteur de template génère les élements XML indiqués dans le template avec les données reçues.
La source de données RDF peut être issue d'un fichier statique, mais peut être aussi générée dynamiquement par le serveur. Voir cet exemple de génération de fichier RDF en PHP
Vous pouvez utiliser serverpost, un composant XBL qui prend en charge les requetes HTTP et permet de faire des formulaires facilement, comme en HTML, en méthode POST. Cela propose donc un composant XBL qui est un bouton "valider". Il faut aussi indiquer les composants XUL dont leur valeur sera transmise au serveur, en leur ajoutant un attribut specifique. Sur le clic du bouton valider, serverpost récupère les données des composants XUL marqués et les envoi au serveur avec la méthode POST. Vous pouvez définir aussi le code à éxecuter aprés envoi (changement de page etc..)
C'est un framework permettant de partager des objets entre le serveur et le client, de manière transparente. http://jpspan.sourceforge.net/
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.