Anmelden

View Full Version : Webservice REST, mehrere Datensätze zurückgeben



Peet
06-09-16, 09:09
Hallo zusammen,
ich habe auf unserer i5 einen Webservice REST definiert, dank guter Doku u.a. auch von IBM + Scott Klement und einigen "Versuchen" läuft das ganze nun schon super.
Ich übertrage die definierten Parameter per URL, das RPG-Programm (mit PGMINFO(*PCML: *MODULE)) hat diese in der *ENTRY, alles läuft wunderbar.

ABER..
ich müsste nun mehrere Datensätze zurückgeben und stehe da ein wenig wie der "Ochse vorm Berg" :)
Über die *ENTRY habe ich ja sowohl die Eingabe,- wie auch die Ausgabeparmeter/Felder definiert.
Aber wie kriege ich es hin, mit dem *PCML"-Support, nun auch mehrere Datensätze zurückzugeben ???
Ich habe es noch nicht ausprobiert, aber vielleicht eine "Mehrfach-DS" mit den Ausgabefeldern in der *ENTRY, geht das überhaupt ???

Ich hoffe, ich habe mein Problem gut genug beschrieben !

Vielen Dank im Voraus !!!

Rainer Ross
06-09-16, 09:30
Hallo Peet,

soll das ähnlich funktionieren wie diese beiden Beispiele:

Ein Datensatz kommt zurück: www.myhofi.com/expcgip/myshop01.pgm?xmid=2 (http://www.myhofi.com/expcgip/myshop01.pgm?xmid=2)

mehrere Datensätze: www.myhofi.com/expcgip/myshop01.pgm?xmid=0

(http://www.myhofi.com/expcgip/myshop01.pgm?xmid=0)Dieser Webservice ist so gebaut, dass er sowohl als GET, wie auch als POST-Request angesprochen werden kann:

GET Request:


SELECT SYSTOOLS.HTTPGETCLOB
('http://www.myhofi.com/expcgip/myshop01.pgm?xmid=2','')
From SYSIBM.SYSDUMMY1;



POST Request:


Select SYSTOOLS.HTTPPOSTCLOB
('http://www.myhofi.com/expcgip/myshop01.pgm',
'<httpHeader>
<header name="Content-Type" value="application/x-www-form-urlencoded"/>
</httpHeader>',
'xmid=1'
) from SYSIBM.SYSDUMMY1;


Herzliche Grüße
Rainer
www.myhofi.com (http://www.myhofi.com) - Powered by IBM i

Peet
06-09-16, 10:03
Hallo Rainer,

grundsätzlich wie bei "mehrere Datensätze"...
Ich hatte die Hoffnung, dass ich den OUTPUT nicht "codieren" muss, sondern dass der *PCML-Support" das für mich "erledigt"...

Peet
06-09-16, 10:26
Hallo zusammen,
ich habe gerade bei der IBM gelesen, dass PCML auch "struct" verarbeiten kann.
Also habe ich einfach mal in der *ENTRY eine DS mit occurs angegeben, die dann die einzelnen Felder eines jeden Datensatzes beinhaltet.
Und was soll ich sagen....es funktioniert !!!!!

Hier noch der Link zu der IBM-Info...
https://www.ibm.com/support/knowledgecenter/ssw_i5_54/rzahh/pcmlproc.htm


Vielen Dank !!!