Webhooks - was genau ist das und was kann damit JAVA

beta20

Top Contributor
Hallo,

ich habe eine Frage was Webhooks angeht.
Prinzipiell verstehe ich das Konzept. Es wird ein Event ausgelöst, z-B. Order wurde in einen anderen Status versetzt.
Nun wird eine vordefinierte URL aufgerufen, anschließend kann das 3 Party Programm weitere Dinge machen (Rechnung verschicken etc.)

Folgende Fragen habe ich aber:
a) Wie muss so ein Aufruf in JAVA aussehen? (wäre ja dann mein Client)
b) Wie muss ein Webhook auf meinem Server aussehen (ich nehme den Webhook entgegen)
c) Wie muss die URL aussehen?
d) Wie können Parameter übergeben werden (bspw. OrderNummer)

Danke für jede Hilfe.
 

httpdigest

Top Contributor
a) Wie muss so ein Aufruf in JAVA aussehen? (wäre ja dann mein Client)
https://stackoverflow.com/questions/1485708/how-do-i-do-a-http-get-in-java
b) Wie muss ein Webhook auf meinem Server aussehen (ich nehme den Webhook entgegen)
Es gibt hier viele Möglichkeiten. Eine wäre, ein Java Servlet zu schreiben, und es mittels eines Java Servlet Containers laufen zu lassen. Eine weitere wäre https://stackoverflow.com/questions...in-java-using-only-java-se-api#answer-3732328
Noch weitere wären, die API von Netty, Jetty, Tomcat, Undertow etc. direkt zu verwenden.
Die Frage ist also eigentlich: "Wie schreibe ich einen Web Server?"
c) Wie muss die URL aussehen?
Naja... der Hostpart muss deinen Server ansprechen, der Port muss der Port auf deinem Server sein. Der Pfad muss, falls du einen Servlet Container verwendest, dem Context-Pfad deines Servlets entsprechen. Ab dann sind deiner Fantasie keine Grenzen gesetzt.
Die Frage ist viel zu generisch gestellt kann eigentlich beantwortet werden mit: https://tools.ietf.org/html/rfc1738 bzw. https://tools.ietf.org/html/rfc3986
d) Wie können Parameter übergeben werden (bspw. OrderNummer)
Beliebig. Als URL-Pfadparameter, als URL-Queryparameter, als HTTP Body (dann via einer HTTP Methode, die einen Body akzeptiert POST/PUT/...), als HTTP Header, ...

Du solltest dich hier generell einmal in HTTP im Allgemeinen einlesen.
 

beta20

Top Contributor
Also generell geht es mir von meiner App einen Webhook zu senden.
Ich habe hierzu mal bei einer anderen Applikation mir das angeschaut.

Hierzu wird in einer Entity "Webhooks" das gespeichert:
- URL (www.externeseite.de/webhooks/
- Event (z.B. createContract)

Nun meine Fragen:
1) Wenn ich mehrere Webhooks für verschiedene Events habe, muss dann die URL des Clients auch immer unterschiedlich sein, oder geschieht die Unterscheidung durch einen Parameter, der mitgegeben wird (eventType=createContact z.B.)

2) Hat jemand ein Beispielcode für die Implementierung auf dem Server?

3) Bekommt der Server auch wieder eine Rückmeldung, oder sendet er den Webhook nur zurück? Was passiert zB wenn der Client offline ist, oder die URL nicht stimmt? Kommt dann ein Fehlercode zurück?

4) Wie übergebe ich die Objekte? Bspw. ich möchte, dass der Client mein Objekt "Invoice" bekommt, sodass er auf seiner Applikation die Invoicenummer verarbeiten kann etc.?

Vielen Dank für jede Hilfe
 
K

kneitzel

Gast
Also wenn ein WebHook aufgerufen wird, dann wird eine entsprechende Rückmeldung erwartet. Sprich: Es gibt ein HTTP Request und es wird ein Response erwartet (200 OK HTTP).

Was passiert, wenn ein Client nicht erreichbar ist oder ein Fehler auftritt, muss natürlich der Server bestimmen. Das kann z.B. gelogt werden, damit sich das jemand anschauen kann.

Und was da mit gegeben wird, wird natürlich genau definiert. Man kann sich einfach einmal ein Beispiel ansehen, wie sowas aussehen kann: Github hat Webhooks implementiert und hat genau definiert, wie diese aussehen:
https://developer.github.com/webhooks/

Da kann man sehr gut erkennen, dass einfach nur ein HTTP Request beschrieben wird bzgl.
URL (Die wird hier nicht genutzt, aber könnte natürlich auch Informationen enthalten)
Header (Hier werden spezielle Header gesetzt, die beschrieben sind.
Payload (Die eigentlichen Daten, die mit gegeben werden.)

Und man kann natürlich auch direkt am dort gegebenen Beispiel erkennen: Es gibt standard Header, die man kennen muss, denn daran richtet sich auch das Payload aus. So wird dort json verwendet für den Payload so dass Content-Type auf application/json gesetzt ist.

So eine Beschreibung muss man natürlich erstellen, wenn man selbst Webhooks anbieten will. Und wenn man nur Webhooks empfangen möchte, dann sollte man beim Anbieter nach einer solchen Dokumentation fragen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Was bewirkt ganz genau throw hinter einem Funktionsnamen? Java Basics - Anfänger-Themen 14
B OCR - Rechnungserkennung, wie geht das genau? Java Basics - Anfänger-Themen 59
L Was genau macht -> Java Basics - Anfänger-Themen 18
Dawinartor Erste Schritte Was genau steckt dahinter? Java Basics - Anfänger-Themen 7
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
A Was genau ist ein Standardkonstruktor Java Basics - Anfänger-Themen 10
B Wie funktionieren diese Methoden in diesem Sortierverfahren genau? Java Basics - Anfänger-Themen 2
B Für gesamte Schleife genau X Sekunden benötigen Java Basics - Anfänger-Themen 1
J TabelView - Kann mir jemand die Sequenz genau erklären ? Java Basics - Anfänger-Themen 2
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
H Wer genau ist 'Er'? Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
B Was genau ist getClass().getRessouce() Java Basics - Anfänger-Themen 1
Y Wie setze ich genau eine Stückliste (UML) in Java um? Java Basics - Anfänger-Themen 9
D Was genau ist JDBC? Java Basics - Anfänger-Themen 2
K Code vereinfachen mit Schleife, aber wie genau? Java Basics - Anfänger-Themen 3
L Jarfiles packen, wie geht's genau? Java Basics - Anfänger-Themen 12
D Wann genau nutze ich ein solches Interface? Java Basics - Anfänger-Themen 3
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
S Erste Schritte Konstruktor - wie genau funktioniert der Code? Java Basics - Anfänger-Themen 16
J Klickposition genau bestimmen Java Basics - Anfänger-Themen 12
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
S Dezimale Konstanten sind immer positiv oder null - was heisst das den genau? Java Basics - Anfänger-Themen 2
F Was soll dieses Programm genau machen ? Java Basics - Anfänger-Themen 9
D Wie genau programmiere ich eine Assoziationsklasse? Java Basics - Anfänger-Themen 3
D Wie genau kann ich in Java Komponenten entwickeln? Java Basics - Anfänger-Themen 6
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
D Was genau bedeutet und bewirkt dieses @override? Java Basics - Anfänger-Themen 15
M Was ist genau eine Abstraktion in java Java Basics - Anfänger-Themen 3
J Was genau davon ist Anweisung, was Deklaration? Java Basics - Anfänger-Themen 2
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Was bedeutet folgende Programmcodezeile genau Java Basics - Anfänger-Themen 6
B Zeitmessung nicht genau genug Java Basics - Anfänger-Themen 11
L Hilfe, ich versteh nicht was mein Prof genau von mir will! Java Basics - Anfänger-Themen 9
C Wie genau geht man bei der Konzeptionierung vor? Java Basics - Anfänger-Themen 5
P Was genau bedeutet Feld Java Basics - Anfänger-Themen 3
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
S Stack.pop() wie genau funktioniert das? Java Basics - Anfänger-Themen 3
D Mathematik in Java - genau? Java Basics - Anfänger-Themen 6
X Was genau heißt "public static void main(String[] args) Java Basics - Anfänger-Themen 4
M Was muss ich verändern damit ich es so ausgegeben bekomme wie auf dem Foto? Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
P CSV Datei einlesen und damit ein Datenmodell befüllen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
K Könnte mir jemand erläutern, was der autor damit meint? Java Basics - Anfänger-Themen 5
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
B Teile eines Strings in Zahl umwandel und damit weiterrechnen? Java Basics - Anfänger-Themen 3
N jpos.xml wohin damit? Java Basics - Anfänger-Themen 9
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
L Problem damit, leeren String zurück zu geben Java Basics - Anfänger-Themen 16
Hindi93 Neue Libs - wohin damit? Java Basics - Anfänger-Themen 7
F DocumentListener - Wohin damit? Java Basics - Anfänger-Themen 10
T Wie funktioniert DOM und wie hat man damit umzugehen? Java Basics - Anfänger-Themen 4
G Was bracuht man, damit Java läuft? Java Basics - Anfänger-Themen 6
C Geht regex damit oder ist da zu kompliziert? Java Basics - Anfänger-Themen 3
P Welche Methode damit ich rausfinde auf welchem Laufwerk. Java Basics - Anfänger-Themen 8
J No result was produced . was fange ich damit an? Java Basics - Anfänger-Themen 2
MrTical Zahlen einlesen um damit zu rechnen Java Basics - Anfänger-Themen 5
G Fehlermeldung - Kann leider nichts damit anfangen Java Basics - Anfänger-Themen 3
B Gleichung auslesen und dann damit Rechnen? Java Basics - Anfänger-Themen 4
C Threads damit Frame repaintet werden kann! WIE? Java Basics - Anfänger-Themen 2
B Datei öffnen , Datensätze auslesen und damit Rechnen ? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben