AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke REST-API längeres Warten auf Antwort
Thema durchsuchen
Ansicht
Themen-Optionen

REST-API längeres Warten auf Antwort

Ein Thema von hschmid67 · begonnen am 26. Sep 2023 · letzter Beitrag vom 27. Sep 2023
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#5

AW: REST-API längeres Warten auf Antwort

  Alt 27. Sep 2023, 15:03
Neben Polling und aktiver Benachrichtigung über Websockets gibt es auch noch sogenannte Webhooks.

Diese würde ich grundsätzlich bevorzugen, denn sie benötigen auf beiden Seiten keine permanenten Ressourcen und sind stateless, und lassen sich somit deutlich einfacher skalieren.

Da gibt es 2 generelle Ansätze:
Der Client-Dienst schickt dem Server-Dienst die Aufgabe mit einer Id (z.B. xyz), und bekommt sofort die Antwort dass die Anfrage angenommen wurde.
Der Server-Dienst verarbeitet die Anfrage.
Ist er fertig, ruft er eine ihm bekannte URL auf dem Client-Dienst auf und sagt diesem somit aktiv, das Job xyz fertig ist. Er schickt nicht das Ergebnis mit, sondern das ist nur ein ganz kurzes "Hey, xyz ist fertig!"
Der Client-Dienst kann jetzt das Ergebnis abrufen und damit weiter machen.

Der zweite Ansatz ist so ähnlich, nur kennt der Server-Dienst die Url des Client-Dienstes nicht.
Der Client-Dienst gibt also beim Aufruf nicht nur die Job-Id mit, sondern die komplette Url, die der Server-Dienst aufrufen soll. z.B. "https://{ip}:{port}/webhooks/job-fertig/xyz" <- da steckt die job-id xyz auch drin
Nach dem Abarbeiten ruft der Server-Dienst also einfach immer die übergebene Url auf, und meldet somit das er fertig ist, ohne dass er die Adresse oder gar eine Id vorher kennen müsste. Der Client kann also komplett selber bestimmen, wie er benachrichtigt werden will und es sind keine Änderungen am Server-Dienst nötig, wenn der Client irgendwann mal z.B. einen weiteren Parameter möchte.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
 


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 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz