AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TMS Webcore app mit DB auf gehosteten Systemen

TMS Webcore app mit DB auf gehosteten Systemen

Ein Thema von noisy_master · begonnen am 23. Nov 2022 · letzter Beitrag vom 22. Dez 2022
Antwort Antwort
Seite 2 von 4     12 34   
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#11

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 25. Nov 2022, 12:31
Okay, vielleicht bin ich auch einfach nur zu blöde ...

Du hast ja scheinbar eine CRUD API auf irgendeinem Server laufen. Die CRUD API hat ja auch einen Endpunkt mit /status/ping. Wie sieht denn dazu der Aufruf in einem Browser aus? Wenn ich
http://xxxxxx.xxx/api.php?status/ping eingebe bekomme ich die schon genannte Fehlermeldung. Eigentlich laut Seite soll da ja ein ReturnCode 200 und sowas:
{
"db": 42,
"cache": 9
}
(in der Art)rauskommen.....
Wie sieht das bei dir aus? Oder habe ich den Aufruf schon falsch?
Dirk
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 25. Nov 2022, 15:44
Hast du eine Middleware aktiviert in der Konfiguration?
Dort kannst du auch den Debugmodus aktivieren.
Und: Teste das nicht im browser sondern im REST debugger.
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#13

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 28. Nov 2022, 07:05
Sorry für die späte Antwort.
An der Konfiguration für die Middleware habe ich zumindest nichts geändert. Damit müsste es wohl CORS sein.

Ja, mit dem EMBA Rest Debugger werde ich es beizeiten versuchen, wäre dir aber trotzdem dankbar, wenn du mal bei dir per Browser den status/ping Endpoint ausprobieren könntest und das Ergebnis hier postest..

DANKE und Gruß
Dirk
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 28. Nov 2022, 16:48
Lass das ? weg:
http://xxxxxx.xxx/api.php/status/ping
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#15

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 28. Nov 2022, 17:41
Danke für die Info.

Irgendwie funktioniert das auf dem gehosteten System leider nicht(was auch immer ich falsch gemacht habe). Habe mir lokal nen XAMPP aufgesetzt und es funktioniert sofort.
Eine Frage hätte ich noch: Was für eine TMS Connection(und wie konfiguriert) hast du zur Verbindung zu der API genutzt?
Wenn du gaanz viel Muße hast hast du ja vielleicht sogar ein funktionierendes Snippet für mich
Dirk
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
458 Beiträge
 
#16

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 28. Nov 2022, 19:07
Wenn du gaanz viel Muße hast hast du ja vielleicht sogar ein funktionierendes Snippet für mich
Delphi-Quellcode:
procedure ...RequestValue(pmResultProc: TProcBoolean);

  //-------- local function -------------------------------------------

  function DoHandleResponse(_pmEvent: TEventListenerEvent): Boolean;
  var
    rspJson: String;
    rspStatus: Integer;
    rspObject: TJSObject;
  begin
    asm
      rspJson = _pmEvent.target.responseText;
      rspStatus = _pmEvent.target.status;
    end;

    if rspStatus = 200 then
    begin
      rspObject := TJSJson.parseObject(rspJson);
      ...
    end;

    pmResultProc(...);
    Result := True;
  end;

  //-------- end local function ---------------------------------------

var
  req: TJSXmlHttpRequest;
  requestUrl: String;
begin
  asm
    var url = new URL(this.FServiceUrl);
    url.searchParams.append('accessToken', this.FAccessToken);
    requestUrl = url.toString();
  end;

  req := TJSXmlHttpRequest.new;
  req.addEventListener('loadend', @DoHandleResponse);
  req.open('GET', requestUrl);
  req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  req.send;
end;
Der Request in der Funktion läuft asynchron ab. Wenn du auf den Aufruf warten musst, verwende eine Promise.
Delphi-Quellcode:
function ...LoadValue: TJSPromise;
begin
  Result := TJSPromise.new(
    procedure(pmSuccess, pmFailed: TJSPromiseResolver)
    begin
      RequestValue(
        procedure(pmValue: Boolean)
        begin
          pmSuccess(pmValue);
        end);
    end);
end;
Benutzen kannst du es so:
Delphi-Quellcode:
procedure ...btnLoadValueClick(Sender: TObject);

  //-------- local function -------------------------------------------

  function HandleLoadValue(pmValue: JSValue): JSValue;
  begin
    Result := pmValue;
    btnLoadValue.Enabled := True;
    ShowMessage('Value available: ' + TJSString(pmValue).ToString);
  end;

  //-------- end local function ---------------------------------------

begin
  btnLoadValue.Enabled := False;
  LoadValue._then(@HandleLoadValue);
end;
Bis bald...
Thomas
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#17

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 29. Nov 2022, 10:31
Hallo Thomas,

Danke für dein Beispiel! Wenn ich das richtig sehe hat das aber nichts mehr mit TMS geschweige denn mit TMS Web Core zu tun, oder habe ich da jetzt was falsch verstanden?

Gruß
Dirk
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 29. Nov 2022, 10:33
Wenn du gaanz viel Muße hast hast du ja vielleicht sogar ein funktionierendes Snippet für mich
Mach ich gerne - dauert nur ein bissl. Sorry.
Funktioniert extrem cool und nahezu ohne Code. Was mytbo zu Fuß macht, machen die TMS Komponenten von selbst.
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#19

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 29. Nov 2022, 10:55
Mach ich gerne - dauert nur ein bissl. Sorry.
Funktioniert extrem cool und nahezu ohne Code. Was mytbo zu Fuß macht, machen die TMS Komponenten von selbst.
Kein Problem, freue mich ja über jede Hilfe Vielen Dank schon mal vorab....bin schon ganz gespannt
Dirk
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: TMS Webcore app mit DB auf gehosteten Systemen

  Alt 29. Nov 2022, 14:02
Ich habe aus der DFM das wichtigste rauskopiert:
Code:
object conNaehrwerte: TWebClientConnection
    Active = False
    Headers.Strings = (
      'X-API-Key=12345678')
    DataNode = 'records'
    URI =
      'https://www.nutritional-software.at/api.php/records/TBLXY?filter=COL1,eq,ABC'
    Left = 1134
    Top = 568
  end
  object cdsNaehrwerte: TWebClientDataSet
    Connection = conNaehrwerte
    Params = <>
    Left = 1265
    Top = 561
  end
Also
1) TWebClientConnection aufs Formular und bestücken
2) TWebClientDataSet damit verbinden
3) active = true

Weiter kannst du mit TWebDataSource und dann auch schon visuelle Kompopnenten zB TWebDBEdit anbinden. Ich habe zuerst nur die TWeb*-Sachen verwendet, aber hier kann man auch alles aus TTMSFNC* benutzen.

Ich habe zu Beginn mit CORS gekämpft, aber wenn das API und der DB Server auf demseblen Server sind, ist das kein Thema. Der REST-Debugger war sehr hilfreich beim Verstehen, was im Header etc stehen muss bzw dann zurückgeliefert wird.

Achja: Oben das
Code:
 Headers.Strings = (
      'X-API-Key=12345678')
steht da nur, weil ich als Middleware die Authentifizierung aktiv habe. Wenn du die nicht hast, brauchst du den header gar nicht setzen.

Hilft dir das mal?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:01 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