> Tech > HTTP à  partir de RPG

HTTP à  partir de RPG

Tech - Par iTPro - Publié le 17 février 2012
email


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

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 , et si je le trouve, je sauvegarderai sa valeur dans une variable de mon programme. HTTPAPI appellera cette sous-procédure pendant l’exécution de la routine http_url_get_xml() ; donc ce code s'exécute en fait pendant l'étape C de la figure 2. Au terme de la routine http_url_get_xml(), j'aurai déjà le montant en dollars dans ma variable result. Pour avoir un exemple simple, j'utilise l'opcode DSPLY pour afficher le résultat sur l'écran.

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 gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 17 février 2012