Entscheidung zwischen SOAP oder REST

Tr3x

Lieutenant
Registriert
Feb. 2007
Beiträge
650
Hi,

ich bin nebenbei dabei mich mehr mit Schnittstellen und Java zu beschäftigen.
Kurzer Hintergrund soll: Das Java soll als backend dienen. Das Frontend arbeite ich mit React, also eher eine Web Lösung.
Letztendlich sollen Dokumente beispielsweise PDF oder Bilder ausgegeben werden.

Jetzt wanke ich ober ich den Weg mit SOAP oder mit Rest gehen will.

Was ich so bisher erfahren habe spricht alles für REST. Ich muss mich nicht um eine WSDL kümmern. Mit Rest lässt sich ja auch eine XML ausliefern. Was spricht den für SOAP außer die Sicherheit? Bzw gibt es andere Businessgründe weshalb man SOAP wählt?
 
Moin,

ne WSDL kann man sich auch erzeugen lassen. Was aber entscheidend ist: Du willst in Javascript kein Soap machen und irgendwelchen XML kram behandeln. Bei sowas ist JSON eigentlich immer zu bevorzugen.

Und deine Dateien die fummelst du weder in JSON oder XML raus sondern als eigenes Servlet was entsprechend den Kram zurückgibt, entweder als Link oder direkt als Stream mit entsprechenden Headern.

MfG
 
SOAP arbeitet nur mit POST Requests, REST mit GET, POST, PUT, PATCH, HEADER und DELETE.
Manchmal (gerade bei Hosting-Umgebungen etc.) funktionieren jedoch keine anderen Request Methods außer GET und POST ...
REST kann man ebenfalls mit einem starken Token (vergleichbar mit SAML) absichern: JWT.

Ich habe auf der Arbeit mit beiden Schnittstellenvarianten zu tun: REST funktioniert in allen Belangen besser.

Der GDV bietet in seiner Cloud Umgebung (TGIC) Dienste mit 2FA Security usw. an.
Die Dienste sind alles Schwergewichte, die in JAVA geschrieben wurden. Die verwenden durch die Bank SOAP mit SAMLv2. Der Umgang damit ist kompliziert und die Performance ist im Vergleich schlecht.

Meine eigenen APIs (Dateiarchiv mit zentraler AES-CBC Verschlüsselung, unser CRM, usw.) habe ich dann mit REST und JWT + TOTP-Token für den Auth-Service usw. entworfen und umgesetzt, das ist deutlich zugänglicher und viel performanter.
 
Zurück
Oben