Pour pouvoir consommer un service web à partir de RPG, il nous faudra le moyen de nous connecter à un serveur HTTP à partir de RPG. A cet effet, j'ai écrit un outil open source appelé HTTPAPI. HTTPAPI est un programme de service RPG que
HTTP à partir de RPG
vous pouvez télécharger sur mon site web à www.scottklement.com/httpapi. Ce logiciel gratuit vous permet d’écrire un logiciel côté client qui parle à un serveur HTTP. Il fournit plus de 80 sous-procédures, dont chacune aidera à communiquer avec un serveur HTTP. HTTPAPI est capable de consommer des services web en utilisant les deux paradigmes SOAP et RESTful.
Exemple : conversion de devises
Quand j’enseigne les services web SOAP, je commence par un exemple de conversion de devises. Je vais donc faire de même pour cet article sur les services web RESTful. Xurrency.com est un service web RESTful créé par un jeune développeur espagnol nommé Alfonso Jiménez. Si vous lui donnez un URI dans le format suivant, il vous fournira un document XML contenant l’information sur les devises.
http://xurrency.com/amount/from-currency/to-currency/feed
/feed demande à Xurrency.com de présenter les résultats comme un document XML. Si j’omets le mot-clé /feed, le résultat sera en HTML, apte pour un affichage dans un navigateur web. Mais comme je veux l’utiliser dans un programme RPG, il vaut mieux le demander en XML. Par exemple, si je voulais convertir US$5 en euros, j’utiliserais l’ URI suivant :
http://xurrency.com/5.00/usd/eur/feed
Essayez de taper cet URI dans votre navigateur web, et vous verrez le montant s’afficher. Si vous examinez le source de la page web renvoyée, vous verrez que c’est en réalité un document XML qui contient l’information sur les devises. J’ai inclus ce document XML dans la figure 1 de cet article. Vous observerez que le montant en euros qui correspond à US$5 se trouve dans le tag XML < dc :value > (A , figure 1).
Comment faire cela à partir d’un programme RPG ? La figure 2 montre un programme nommé XURRENCY qui prend trois paramètres nommés fromCurrency, toCurrency, et amount (A, figure 2). Il les utilise pour construire un URI (B, figure 2), puis demande à HTTPAPI d’appliquer la méthode GET sur cet URI (C, figure 2).
HTTPAPI est accompagné de l’analyseur Expat XML open source, lequel analysera le XML. Au préalable, vous devez écrire une sous-procédure avec une liste de paramètres comme en D de la figure 2. HTTPAPI appellera cette sous-procédure de manière répétitive au fur et à mesure que les données XML parviendront du réseau. Chaque fois qu’il trouve un tag XML, il appelle votre sous procédure. En E de la figure 2, vous voyez que je recherche le tag
Si vous utilisez couramment des messages SOAP, vous apprécierez que c’est plus simple ici. Nul besoin d’envoyer un document SOAP relativement complexe au serveur, c’est juste un simple URI. Nul besoin de jongler avec des espaces de nom ou des échappements XML dans le résultat, c’est juste un simple document XML.
Exemple: conversion de devises 2
Peut-être que le programme XURRENCY de la figure 2 était un mauvais exemple. En effet, pour utiliser des taux de change dans votre application, vous tiendriez probablement un fichier physique les contenant tous. Vous ne voudriez certainement pas passer par le web pour chaque consultation de taux ! Aucun problème. Si vous ne précisez pas la devise cible, Xurrency.com renverra toutes les devises cible possibles. Par exemple, la ligne suivante me donnerait tous les taux dont j’ai besoin pour convertir des dollars US en toute autre devise :
http://www.xurrency.com/usd/feed
Je pourrais examiner en boucle les résultats et charger les devises dans un fichier physique. Ensuite, pour obtenir un taux de change, je l’obtiendrais à partir de ce fichier. J’ai écrit un exemple de cette technique, sous le nom XURRENCY2, et vous pouvez le télécharger sur iTPro.fr Club Abonnés.
Téléchargez cette ressource

Gagner en cyber-résilience avec Insight & Bitdefender
Dans un environnement en constante mutation, où les cyberattaques deviennent plus nombreuses et plus sophistiquées, et où les SI se complexifient par la multiplication des offres SaaS et le multi cloud, les entreprises doivent repenser leur approche de la cybersécurité et faire évoluer leurs bonnes pratiques. Comment gagner en Cyber résilience ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Comprendre et tirer parti de l’approche CloudOps
- Quel est l’impact du stockage des données sur le climat ?
- Les piliers de la création de valeur business
- Industrie 4.0 : Comment l’analyse de données enrichie par les capteurs et augmentée par l’IA optimise la production automobile
- Vidéo Protection des données avec Purview !
