Ajax apporte une solution élégante au problème chronique que un jeu de résultats SQL. Vous pouvez convertir dynamiquement les jeux de résultats SQL en XML au moyen d’un utilitaire simple, mais si l’API RPG est proposée avec un service Web, ce dernier génère lui-même XML. Dans cet article, je montre comment utiliser Ajax pour invoquer un service Web basé sur RPG, et comment traduire en HTML la réponse XML générée par RPG.
Simplifier les applications web avec Ajax, RPG et XSL

Tous les environnements de développement intégrés (IDE, integrated development environments) ont des assistants qui créent du code côté serveur pour communiquer avec les services Web. Cependant, vous pouvez invoquer un service Web directement à partir de votre HTML avec JavaScript. Le protocole sous-jacent que les services Web utilisent pour packager les requêtes de réseau est SOAP (Simple Object Access Protocol), un langage XML.
L’API RPG que je prends comme exemple, a un paramètre d’entrée qui spécifie un certain nombre de comptes à extraire. La figure 1 montre le XML SOAP qui demande au service Web deux comptes, et la figure 2 affiche la réponse XML SOAP. Il vous suffit donc de savoir comment adresser une requête SOAP à partir de HTML, et comment convertir la réponse XML en HTML. L’exemple getAccounts.html (figure 3) demande le nombre de comptes (figure 4).
La réponse du service Web figure sur la même page. Pour montrer la réponse XML SOAP réelle, je place le texte dans la zone texte grise désactivée en figure 5. À noter que le XML est reformaté en une table HTML en haut de la page. Vous allez effectuer cette conversion avec un fichier XSL (Extensible Stylesheet Language) (figure 6). Avant de plonger dans le code, je tiens à signaler deux problèmes majeurs.
Premièrement, le JavaScript nécessaire pour effectuer les requêtes SOAP basées sur Ajax est dépendant du navigateur. Deuxièmement, seul Internet Explorer permet des transformations XSL. Heureusement, il existe des dizaines de solutions au premier problème et une poignée pour résoudre le second. L’une des solutions – Sarissa – est commune aux deux. Elle doit son nom à la longue lance utilisée à l’époque du guerrier Ajax. C’est un jeu de routines JavaScript open-source qui fournit des transformations XSL indépendantes du navigateur et des fonctions Ajax standardisées qui marchent sur la plupart des navigateurs, y compris Internet Explorer et Firefox. Vous pouvez la télécharger à partir de SourceForge (sourceforge.net/projects/ sarissa).
Le téléchargement Sarissa et sa documentation associée est constitué de cinq fichiers JavaScript. Pour cet article, j’en utilise deux : sarissa_js et sarissa_dhtml.js (téléchargez-les sur www.itpro.fr Club Abonnés). Le fichier getAccounts.html (figure 3) charge les deux fichiers JavaScript Sarissa et a quatre fonctions personnal i s é e s : getAccounts, ajaxResponseFunction, xslTransformAjax SoapResponse et getXmlDocument. Une ligne de code (var ajaxRequest;) n’est pas contenue dans une fonction. Les variables JavaScript qui ne sont pas contenues dans une fonction sont considérées globales et, comme la variable ajaxRequest est utilisée dans toutes les fonctions, elle doit être globale. La fonction getAccounts est invoquée quand un utilisateur clique sur le bouton Get Accounts dans le formulaire HTML.
Téléchargez cette ressource

État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Impact des outils d’IA sur la satisfaction, le niveau de stress et le bien-être !
- La portabilité des données, un élément essentiel pour soutenir l’émergence des clouds souverains
- Passer d’une logique de productivité à une recherche d’utilité
- Pourquoi l’indépendance de Java devient une priorité au niveau du conseil d’administration ?
- Le Club EBIOS, une communauté dédiée à la gestion des risques autour de la méthode EBIOS
