Web services

configuration Apache, Zend et PHP , Web services
Répondre
Erwan_35
Messages : 13
Enregistré le : ven. 09 juin 2017, 07:47:18
Localisation : Rennes

Message 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

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Message 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)
Christian Massé (Volubis.fr)

Erwan_35
Messages : 13
Enregistré le : ven. 09 juin 2017, 07:47:18
Localisation : Rennes

Message 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

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

sujet manquant

Message par cmasse »

OK, je vais regarder....
Christian Massé (Volubis.fr)

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

moi ca marche

Message par cmasse »

Mais il semble que pour moi le sujet soit bien conservé ???
Christian Massé (Volubis.fr)

Erwan_35
Messages : 13
Enregistré le : ven. 09 juin 2017, 07:47:18
Localisation : Rennes

Message 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

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Accept

Message par cmasse »

La directive HTTP Accept permet de choisir le format souhaité : "Application/json"
Christian Massé (Volubis.fr)

Erwan_35
Messages : 13
Enregistré le : ven. 09 juin 2017, 07:47:18
Localisation : Rennes

Message 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

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

outils de test

Message 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
Christian Massé (Volubis.fr)

Répondre