Web service REST avec DS en Input

configuration Apache, Zend et PHP , Web services
Répondre
jgoizil
Messages : 7
Enregistré le : ven. 01 mars 2013, 08:43:32

Web service REST avec DS en Input

Message par jgoizil »

Bonjour,

je cherche à exposer en REST un programme qui contient une DS à occurrence en Input et une autre DS à occurrence en output.
Ce programme a été exposé depuis Liberty en 7.2. (j'ai un doute sur les paramètres de création du service, notamment sur la gestion de la DS en input)

Je souhaite maintenant consommer ce service depuis un autre IBM i.
En général, j'utilise la fonction HTTPGETCLOB mais dans mon cas, je dois envoyer plusieurs valeurs correspondants à mes occurrences de la DS Input.

Quelle est la méthode à utiliser ?
Ne faut il pas utiliser la fonction HTTPPOSTCLOB ?

Si vous avez déjà testé, je suis preneur.

Merci

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

POST ou GET

Message par cmasse »

tout dépend de ce qui a été défini lors de la création

*QUERY_PARAM
les paramètres sont transmis dans l'URL sous la forme ?param1=valeur1&param2=valeur2

*PATH_PARAM
les paramètres sont transmis dans l'URL sous la forme /chemin/valeur, l'URL vue plus haut /chemin{param1} définie le nom du paramètre

*FORM_PARAM
les paramètres sont transmis dans un formulaire contenant une zone de formulaire nommé param1 <input name="param1" type="text"
Christian Massé (Volubis.fr)

jgoizil
Messages : 7
Enregistré le : ven. 01 mars 2013, 08:43:32

Message par jgoizil »

Ok c'est à peu près ou j'en étais arrivé.
Il faut dans mon cas utiliser *QUERY_PARAM à la place de *PATH_PARAM.

Par contre, si notre programme attend une DS à occurrence en entrée, ce n'est pas forcément bien pris en compte avec le REST ?

Pour un WS SOAP, ca été fait automatiquement car les paramètres sont passés dans le Body du message.

En REST, ce n'est pas possible d'avoir :
?param1=valeur1&param1=valeur2&param1=valeur3...

Les paramètres doivent aussi être dans le body ?
Ou alors c'est illogique d'avoir une DS à occurrence pour un web service.

Cdt,
Jeremy

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

DS

Message par cmasse »

J'avoue n'avoir jamais testé une DS en entrée, des paramètres individuels ne seraient pas plus simples et plus intuitifs ?
Christian Massé (Volubis.fr)

jgoizil
Messages : 7
Enregistré le : ven. 01 mars 2013, 08:43:32

Message par jgoizil »

Je pense que si mais l'idée était de partir d'un programme existant qu'on expose en WS.
Sauf qu'on se rend bien compte que ce n'est pas toujours adapté de prendre de l'existant sans modifier la structure du programme.
Un programme exposé en web service doit être pensé dés le début.

D'après ce que j'ai pu voir, c'est possible en passant les paramètres directement dans le body et non dans l'URL (correspond au "Wrap input parameters") pour gérer une DS.

par contre, on devrait pouvoir gérer une liste de paramètre en entrée (je pense à une liste de clients ou un truc dans le genre) du type
?param1=valeur1&param1=valeur2&param1=valeur3

Répondre