Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   TWebModule DefaultHandler wird 2 x ausgeführt? (https://www.delphipraxis.net/210029-twebmodule-defaulthandler-wird-2-x-ausgefuehrt.html)

gmc616 18. Feb 2022 17:46

TWebModule DefaultHandler wird 2 x ausgeführt?
 
Hallo Delphi-Praxis,

aus gegebenen Anlass bin ich dazu verdonnert worden, auf die schnelle einen REST-Server aus dem Boden zu stampfen. Dabei habe ich keine Ahnung davon.
Also habe ich mir ein paar Tutorials reingezogen und das eine und andere Video angeschaut und etwas zusammen gefrickelt.
Der Server als StandAlone.Exe läuft ansich. Soll später eine ISAPI-Modul werden.

Jetzt stelle ich aber fest, dass der DefaultHandler des TWebModules immer 2 mal ausgeführt wird. Ist das normal?
Das Handled:=TRUE zusetzen hilft nicht.

Da ich den URL der REST-API auf "Variablen" prüfen muss, dachte ich mir: Springste gleich in den DefaultHandler und nimmst dort den Request.PathInfo auseinander.
Die URLs sollen später in etwa diese Form haben
Code:
http://myServer.tld/project/{projectId}/{groupId}.{format}
Von daher sehe ich keinen Sinn, das über die TWebActionItems zu regeln.

Oder gibt es bessere Methoden, den URL zu "parsen"?

Danke.

Rolf Frei 18. Feb 2022 19:26

AW: TWebModule DefaultHandler wird 2 x ausgeführt?
 
Nein das ist nicht normal, aber ohne Beispielcode ist das schwer zu sagen was du falsch machts. Aber schau dir mal lieber folgende Opensource REST Frameworks an:

- Delphi MVC Framework
Hier ein Blog dazu und weitere Links:
https://blogs.embarcadero.com/powerf...mvc-framework/

- MARS-Curiosity
https://blog.andreamagni.eu/2016/03/...-rest-library/

Diese zu nutzen ist viel einfacher als das Rad neu zu erfinden.

gmc616 19. Feb 2022 02:23

AW: TWebModule DefaultHandler wird 2 x ausgeführt?
 
Ja klar. Jetzt macht es Sinn! :wall: Der zweite Aufruf kommt vom Browser!
Der Browser fordert u.a. auch ein "favorite.ico" an. Daher der zweite Aufruf des DefaultHandlers.

Da, wie gesagt, ich keine Ahnung von diesen REST-Server-Zeug habe, habe ich meinen Bastel-Server mit einem Browser getestet. Hätte ich evtl. erwähnen sollen... :angel:
Der ganze JSON-Krahm dahinter, der über meinen Sever ausgeliefert werden soll, ist ja im Prinzip schon fertig, halt nur noch nicht eingebunden. Step by Step... :coder:
Jetzt, wo ich den Request.PathInfo analysiere und korrekte HTTP-Stati zurückgebe, fragt der Browser nicht mehr danach.

Falsches Test-Werkzeug!
Wieder was gelernt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz