AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DataSnap - In DSServerClass.OnGetClass-Event auf Request zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

DataSnap - In DSServerClass.OnGetClass-Event auf Request zugreifen

Ein Thema von Maliko · begonnen am 26. Jan 2023
Antwort Antwort
Maliko

Registriert seit: 20. Jun 2019
91 Beiträge
 
Delphi 10.3 Rio
 
#1

DataSnap - In DSServerClass.OnGetClass-Event auf Request zugreifen

  Alt 26. Jan 2023, 10:26
Moin,

ich versuche gerade in unseren REST-Server ein Versionierungssystem einzubauen, sprich das die Endpunkte Versioniert sind. Daher hab ich mir das so gedacht, der Aufrufer gibt im Request im Header die Variable X-Version mit an und je nachdem welche Version angegeben wird, wird eine andere RestServerMethods.pas geladen. Dafür wollte ich das OnGetClass-Event der TDSServerClass-Componente nutzen. Leider hab ich bisher nicht herausfinden können wie ich zu diesem Zeitpunkt auf die Requestvariablen zugreifen kann. Hier einmal mein aktueller Event-Handler noch ohne Versionierung:

Delphi-Quellcode:
procedure TdASAPIRestServerModule.DSServerClass1GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass);
  PersistentClass := ASAPIRestServerMethods.Global;
end;
Ich hab bereits versucht über TWebModule auf das Requestobjekt zuzugreifen, allerdings scheint es zu dem Zeitpunkt wo das Event getriggert wird noch nicht zu existieren. Ich find auch nicht wirklich was im Internet zu dem Thema (oder ich benutze die falschen Suchparameter). Hat vielleicht jemand von euch eine Idee? Wie ich es gerne hätte wäre:

Delphi-Quellcode:
procedure TdASAPIRestServerModule.DSServerClass1GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass);
  if(RequestVar = 'v1_0') then
    PersistentClass := ASAPIRestServerMethods1.Global
  else if(RequestVar = 'v1_1') then
    PersistentClass := ASAPIRestServerMethods11.Global
  else
    PersistentClass := ASAPIRestServerMethods2.Global
end;
Kann mir da vielleicht jemand von euch weiterhelfen wie ich zu diesem Zeitpunkt an die Headervariablen des Requests komme? TWebModule hat das Objekt scheinbar zu dem Zeitpunkt noch nicht gefüllt und die globale Klassenvariable Request welche ich im AuthenticationManager.OnUserAuthenticate-Event verwende ist in diesem Event auch nicht vorhanden. Wüsste jemand von euch noch eine weitere Methode an die Headervariablen zu kommen, oder hat vielleicht eine bessere Idee wie ich das mit der Versionierung der Endpunkte lösen kann?

Viele Grüße
Maliko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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