Sie können REST und SOAP nicht vergleichen. REST ist ein Architekturstil, während SOAP ein Protokoll ist.
Leider wurde REST umgangssprachlich als Synonym für RESTful HTTP Service gesprochen, was eine Realisierung einer REST-gestalteten Architektur mit HTTP als (Applikations-) Protokoll bedeutet.
REST basiert auf folgenden Prinzipien (Einschränkungen und Elementen) (in Klammern die Realisierung in RESTful HTTP) [1] .
- Zustandslos (HTTP ist ein zustandsloses Protokoll)
- Ressource (identifiziert durch URIs)
- Einheitliche Schnittstelle (HTTP-Methoden)
- Darstellung (MIME-TYPE)
- HATEOS (Hyperlinks)
- Cache (HTTP-Cache)
Andererseits meinen viele Leute mit SOAP einen auf WSDL und SOAP basierenden Webservice, der Teil der W3C-Webservice-Architektur ist [2] .
- SOAP wird als Protokoll zum Informationsaustausch verwendet (im Grunde genommen Methodenname, Parameter, Rückgabewerte, Datentypen, ...).
- WSDL ist eine Schnittstellendefinitionssprache zur Beschreibung des Webdienstes.
Was ist die heutige Bedeutung von SOAP *?
SOAP ist ein W3C-Standard und wird als Informationsaustauschformat in W3C-Webdiensten verwendet. Diese Webservices wurden - insbesondere während des Hype um SOAs (serviceorientierte Architekturen) um 2008 (+ - 3 Jahre) - und sind (leider) immer noch hauptsächlich in Unternehmensanwendungen implementiert.
Dies hat mehrere Gründe. RESTful HTTP war damals nicht bekannt und wurde missverstanden. Leider ist es immer noch falsch verstanden, werfen Sie einen Blick auf die anderen Antworten
„[...] REST ist viel begrenzter als SOAP [...].“
„Der Hauptzweck von REST ist die Darstellung von Ressourcen im Internet [...].“
Darüber hinaus sind SOAP (und WSDL) Teil des W3C-Webdienst-Protokollstapels, der noch mehr Standards für die Implementierung eines Webdienstes bietet.
Entwickeln die Leute immer noch neue SOAP-basierte APIs oder handelt es sich derzeit hauptsächlich um ein Vermächtnis?
Also ja, es gibt noch und es wird auch in Zukunft Systeme geben, die SOAP verwenden (zumindest in Unternehmenssystemen, meistens hinter den Türen). Aber die Mehrheit versucht heutzutage, eine Art "REST" zu machen.
Kann mich jemand bitte korrigieren, wenn ich mich in diesem Unterschied zwischen SOAP und REST irre?
Die Aussage, dass REST eine flexiblere zustandslose Architektur für die Datenübertragung ist, ist keine gute Erklärung. Einfach gesagt ist REST ein Architekturstil mit spezifischen Einschränkungen und Elementen. Während SOAP ein Informationsaustauschprotokoll ist.
Wie ich schon schrieb, kann man sie nicht vergleichen. Sie können jedoch einen RESTful HTTP-Webdienst mit einem SOAP / WSDL-Webdienst vergleichen.