Discussion:
DataSnap Webserver
(zu alt für eine Antwort)
Rene Kadner
2015-06-16 11:18:54 UTC
Permalink
Ich habe zahlreiche Seiten im Web durchsucht und ein paar Demos nachgebaut,
komme aber nicht weiter. Ich möchte einen DataSnap WebServer erstellen, den
man auch aus anderen Programmen verwenden kann. Ich kann die Objekte immer
nur mit einer vom Projekt vorbereiteten Webseite oder einem DataSnap Client
öffnen. Ein "http://localhost:8080/ServerMethods1/GetData/1234" (o.ä.)
funktioniert einfach nicht.

Ist der Ansatz falsch oder die Umsetzung? Hat hier jemand einen Tipp oder
einen weiterführenden Link für mich?

Mit dem VS geht das übrigens ganz einfach, ich möchte aber meine vorhandene
Businesslogik nicht unbedingt nach C# portieren und doppelt pflegen.

Viele Grüße
René
Rene Kadner
2015-06-17 07:41:44 UTC
Permalink
Ich habe ein wenig weiter geforscht und die richtige Notation für den Aufruf
gefunden:
http://localhost:8080/datasnap/rest/TServerMethods/GetData

Allerdings ist das Ergebnis nicht überall verwertbar. Der WADL Generator
(Project Siena) kann mit dem Ergebnis nichts anfangen.

Das Delphi Projekt liefert es so aus:

{"result":[[{
"header":["Jahr","Anzahl1","Anzahl2","Anzahl3","Anzahl4","Wert"]
},
{
"data":
[
["2015","23","8","1","0","300"],
["2015","16","6","0","0","300"],
["2015","4","0","0","0","300"],
["2015","10","0","0","0","301"],
["2015","17","1","0","0","301"],
["2015","33","1","0","0","302"],
["2015","14","2","0","0","304"],
["2015","1","0","0","0","304"],
]
}
]]}


Gleiches in VS erstellt sieht dagegen so aus:

{"result":
[
{"Jahr":2015,"Anzahl1":23,"Anzahl2":8,"Anzahl3":1,"Anzahl4":0,"Wert":300},
{"Jahr":2015,"Anzahl1":16,"Anzahl2":6,"Anzahl3":0,"Anzahl4":0,"Wert":300},
...
]}

Letzteres wird vom WADL akzeptiert und korrekt wiedergegeben.
Ein Wetter-Webservice
(http://api.openweathermap.org/data/2.5/weather?q=london,uk) zeigt die Daten
auch so an, wie es im VS ausgegeben wird.

Warum geht Delphi wieder mal einen eigenen Weg, der in einer Sackgasse endet
oder was muss ich tun, damit ich ein valides Format erhalte?

Gruß
René
Rene Kadner
2015-06-17 07:45:59 UTC
Permalink
Post by Rene Kadner
was muss ich tun, damit ich ein valides Format erhalte?
das ging fix .. es liegt an der Verarbeitung mit TJSONArray.
Da war wohl das Beispiel, dass ich verwendet habe, nicht ganz optimal.
Loading...