Page 1 sur 1

Posté : ven. 04 août 2017, 09:15:33
par Erwan_35
Bonjour,

je suis en train de déployer un service web en mode REST pour publier des prix et stocks de produits.
J'ai réussi à déployer une première version avec *QUERY_PARAM renseignée pour les paramètres en entrée.
Je soumets la requête en passant deux paramètres ; un code dépôt et un code article. Le WS me retourne un stock disponible au format JSON.
Voici l'URI soumise via Postman :
http://[mon_AS400]:10010/web/services/WS_STOCK?depot=857&article=000017

et la réponse retournée :
{
"P_STOCK_DISPO": 8116
}


Je voudrais transmettre deux paramètres supplémentaires mais qui seraient optionnels.
Il me semble que c'est possible mais je ne me souviens plus de la façon de le faire. Tant au niveau de la syntaxe de requête qu'au niveau du déploiement sur le serveur Liberty

Merci d'avance pour votre aide.

Erwan

Posté : lun. 07 août 2017, 16:38:21
par cmasse
avec *QUERY_PARAM il n'y a rien à faire, ils SONT optionnels !

Attention, dans le programme, un paramètre non transmis est rempli de x'00' (zéro hexadécimal)

Posté : mar. 08 août 2017, 07:55:01
par Erwan_35
Merci Christian.
Au passage, comme vous avez pu le constater, le sujet était vide. Je l'avais bien renseigné mais il ne s'est pas enregistré :?:
Et mon message était en double car je croyais ne pas avoir saisi de sujet c'est pourquoi j'ai ajouté un nouveau message mais sans plus de succès. :!:
C'est comme ici dans ma réponse, le sujet est à blanc !

Erwan

sujet manquant

Posté : mar. 08 août 2017, 09:58:10
par cmasse
OK, je vais regarder....

moi ca marche

Posté : mar. 08 août 2017, 09:58:54
par cmasse
Mais il semble que pour moi le sujet soit bien conservé ???

Posté : mer. 09 août 2017, 16:19:40
par Erwan_35
cmasse a écrit :avec *QUERY_PARAM il n'y a rien à faire, ils SONT optionnels !

Attention, dans le programme, un paramètre non transmis est rempli de x'00' (zéro hexadécimal)
En effet, j'ai ajouté deux paramètres à mon programme RPG et si je ne les transmets pas j'ai bien une réponse.
Question subsidiaire : j'ai modifié mon service web en précisant un format de retour *XML_AND_JSON (alors que précédemment j'avais précisé exclusivement du JSON). L'appel du WS me retourne par défaut du XML, mais quelle est la syntaxe de la requête pour recevoir du format JSON ?
Je l'ai entre-aperçu lors de mes navigations mais n'arrive pas à retrouver la page !

D'avance merci.

Erwan

Accept

Posté : mer. 09 août 2017, 17:20:39
par cmasse
La directive HTTP Accept permet de choisir le format souhaité : "Application/json"

Posté : jeu. 10 août 2017, 09:00:15
par Erwan_35
bonjour Christian, je ne comprend pas bien la réponse.
Le retour de vacances doit encore se faire sentir :(

A quel endroit et avec quelle syntaxe de ma requête http://[mon_AS400]:10010/web/services/WS_STOCK?depot=857&article=000017
dois-je préciser application/json ?

Erwan

outils de test

Posté : jeu. 10 août 2017, 09:50:23
par cmasse
ben.... ça dépend.

sur un navigateur on ne peut pas indiquer ce genre de détail, avec des outils comme POSTMAN (testeur de web service REST) ou JMETER (test de montée en charge) on peut.

enfin pour l'application cliente, ça va dépendre du langage utilisé.

Par Exemple avec HTTPGETBLOB, le deuxième paramètre permet d’indiquer des entêtes HTTP dont la directive Accept