Entwickler-Ecke

Internet / Netzwerk - REST Web Services


RedOne - Mi 30.09.09 14:56
Titel: REST Web Services
Hallo zusammen

Ich versuche mich gerade in Web-Services einzuarbeiten und möchte einen Test-Rest-Server erstellen.
Die Funktionsweise von Rest (http://www.oio.de/public/xml/rest-webservices.htm) ist mir durchaus geläufig, nur habe ich einige Probleme den ersten Schritt zu tun.
Die Funktionsweise von Rest ist es, mittels dem HTTP-Protokol URL-mässig Post, Get, Delete... - Befehle abzusenden.
Welche Unterstützung bietet mir nun Delphi (2007), um dies realisieren zu können, respektive was für Komponenten (IdHTTPServer?) verwende ich dazu, und wie sende ich korrekt z.B. einen Post-Befehl ab?

Kann mir jemand den Einstieg erleichtern?
Kennt jemand delphispezifische Rest-Informationen :-)

Herzlichen Dank

Simon


Critter - Mi 30.09.09 15:13

Hallo,

warum willst du einen eigenen Server implementieren? Installiere die einen XAMPP [http://www.apachefriends.org/de/xampp.html] und lege dir an deine Simulierten REST Adressen ein PHP Script, das die gewünschten Ergebnisse zurück gibt. Oder möchtest du später Tatsächlich einen Delphi Server laufen lassen?

critter


Gausi - Mi 30.09.09 15:16

Bei den letzten Delphi-Tagen gabs da einen schönen Vortrag zu. ;-)

Um einen REST-Server zu bedienen benötigt man nur den IDhttp-Client. Da baut man einfach die URL zusammen und holt sich per IDhttp1.Get(...) die Antwort vom Server ab.
Wenn du einen REST-Server selber bauen willst, dann brauchst du den idHTTP-Server. In dessen OnCommandGet-Event fragst du aRequestInfo.Document und aRequestInfo.Params ab, parsed die so, wie es deine REST-API vorgibt und packst deine Antwort in aResponseInfo hinein.

Der Weg über einen fertigen Server mit entsprechendem PHP-Code erscheint mir aber auch sinnvoller. ;-)


RedOne - Do 08.10.09 16:44

Merci für Eure Antworten.

Die Anforderung war nebst einen Rest-Client in Delphi auch einen Rest-Server in Delphi. Aber eigentlich ist es Wartungsärmer über einen Webserver. Mal schauen, ob dies akzeptiert wird :-)

Ich versuchs jetzt mal dies zum laufen zu bringen :-)

Danke nochmals.