Un web-service : c'est un logiciel qui interagit avec d'autres au moyen de protocoles universels (http, xml...)
Il s'agit du nouveau serveur d'application intégré à l'OS pour distribuer les applications Java.
Ce serveur supporte JSF, JSP, servlets et services web,
et implique peu de ressources et d'administration, c'est le même que
celui utilisé par
DB2 WebQUERY,
Il est basé sur une version de WAS nommée Liberty profile
Lancez le serveur d'administration HTTP, si ce n'est déjà fait
par STRTCPSVR *HTTP HTTPSVR(*ADMIN)
Puis loggez vous sur http://<votreas400>:2001/HTTPAdmin/
Nous savions déjà déployer des pgm ILE (RPG ou COBOL) sous forme de Web services
Avec la 7.4 + SF99662 (ou SF99722/level 19[7.3], SF99713/level 32[7.2]) nous pouvons aussi déployer des web services (REST uniquement) basés sur SQL
Premier exemple, une requête SQL simple
Indiquez ici :
puis par le bouton Add, saisissez une requête SQL
Nous pourrions aussi insérer des Services IBM i (SQL as a service)
par exemple
Etape suivante
Paramètres
Choix du profil de référence (QWSERVICE/dft)
Puis récapitulatif :
Description du service
JDBC
Requête, méthode et format de sortie
une fois le service créé, vous pouvez
testons
format HTML, SQLSTATE inclus | Format JSON, sans SQLSTATE |
ici, un code pays sera transmis
placez alors dans la requête un ou plusieurs ?
ils serons détectés, en tant que paramètres, le type sera automatiquement attribué en fonction de la colonne testée
le lien est fait ici :
et cela se retrouve sur l'écran récapitulatif
Résultat
la différence est là
Résultat (formaté par Firefox)
depuis cette table
remarquez le type SQL retourné
et le type MIME déclaré
Résultat
Soit cette procédure, qui avec un paramètre en entrée (position de début de liste) retourne 50 producteurs
Déployons
Instruction SQL
Résultat "Multi-Row"
Lien avec le paramètre en entrée
Résultat
exemple d'insertion de données (création d'une nouvelle ligne)
Cette fois, la requête est un INSERT
Les paramètres sont détectés
Renommons les
retour d'un status à 201 Created
et cochez Wrap Input parameters
pour tester, utilisons soapUI, méthode POST, remarquez le JSON envoyé
si vous avez oublié, le fichier swagger vous rappelle les paramètres attendus
En cas d'erreur, cherchez un job QZDASOINIT sous le profil QWSERVICE (ou celui indiqué dans le serveur)
une mise à jour
L'un des paramètres est dans le PATH (code), l'autre sous forme de variable ?variable=valeur
testons
Dans le même temps, un nouveau script est proposé (même niveau de PTF)
getConfigurationFile.sh , permettant de retouver la configuration complète dans un fichier .properties
Cela doit permettre de redéployer par :
installwebservice.sh -server DEMO -propertiesFile /tmpIWS/SQL01.properties |
dans le cas d'un web service basé sur un programme, cela suffit (le pgm contenant sa propre description dans le PCML)
dans le cas d'un service basé sur SQL, il faut ajouter
-markupLanguage /tmpIWS/SQL01.xml |
Contenu du fichier :
<dbml restUriPathTemplate="/" version="1.0"> <program errormessage="" httpheaders="" httpstatusonfailure="500"
httpstatusonsuccess="200" name="requete1"
querytype="multi-row" restConsumes="*/*" restHttpRequestMethod="GET"
restProduces="application/json" returnsqlstate="*ERRORS"
treatwarningaserror="true" trimmode="*TRAILING"
wrapInputParams="false" wrapOutputParam="true"> <sql statement="select * from pays"/> </program> </dbml>
Copyright © 2019 VOLUBIS