Unterschiede zwischen REST und SOAP

Dieser Artikel beschreibt einige Aspekte der grundlegenden Unterschiede zwischen REST und SOAP.

Hoppla ... der Vergleich ähnelt dem Vergleich von Äpfeln mit Orangen, da SOAP ein XML-basiertes Protokollformat und REST ein architektonischer Ansatz ist.



Du wirst lernen


  • Was ist REST?
  • Was ist SOAP?
  • Was ist der Unterschied zwischen REST und SOAP?

REST-API


Dies ist der zweite Artikel in einer Reihe von Artikeln über die REST-API:

  • Einführung in die REST-API - RESTful Web Services
  • Unterschiede zwischen REST und SOAP
  • REST-API-Entwicklung - Was ist Contract First (Vertrag zuerst)?
  • REST-API-Entwicklung - Was ist Code First (Code First)?
  • REST API - Was ist HATEOAS?
  • REST-API-Empfehlungen - Beispiele für den Entwurf von Webdiensten in Java und Spring

REST und SOAP


REST und SOAP sind nicht wirklich vergleichbar. REST ist ein architektonischer Stil. SOAP ist ein Nachrichtenformat. Vergleichen wir die gängigen Implementierungen der REST- und SOAP-Stile.

  • RESTful- Implementierungsbeispiel: JSON über HTTP
  • SOAP- Implementierungsbeispiel: XML über SOAP über HTTP

Auf der obersten Ebene beschränkt SOAP die Struktur Ihrer Nachrichten, während REST ein Architekturansatz ist, der sich auf die Verwendung von HTTP als Transportprotokoll konzentriert.

  • Die Besonderheit von SOAP ist ein Datenaustauschformat. Bei SOAP handelt es sich immer um SOAP-XML. Dies ist XML, das Folgendes umfasst:
    - Envelope (Envelope) - Das Stammelement, das die im Dokument verwendete Nachricht und den Namespace definiert.
    - Header (Header) - enthält Nachrichtenattribute, z. B. Sicherheitsinformationen oder Netzwerkroutinginformationen.
    - Body (body) - enthält eine Nachricht, die zwischen Anwendungen ausgetauscht wird.
    - Fehler - Ein optionales Element, das Informationen zu Fehlern bereitstellt, die während der Nachrichtenverarbeitung aufgetreten sind. Sowohl die Anforderung als auch die Antwort müssen der SOAP-Struktur entsprechen.
  • Die Besonderheit von REST ist die Verwendung von HTTP als Transportprotokoll. Dies impliziert die bestmögliche Nutzung der von HTTP bereitgestellten Funktionen - Anforderungsmethoden, Anforderungsheader, Antworten, Antwortheader usw.

Nachrichtenformat


  • In SOAP verwenden Sie das SOAP-XML-Format für Anforderungen und Antworten.
  • In REST gibt es kein solches festes Format. Sie können Nachrichten basierend auf XML, JSON oder einem anderen geeigneten Format austauschen. JSON ist das beliebteste der verwendeten Formate.

Service-Definitionen


  • SOAP verwendet WSDL (Web Services Description Language), eine XML-basierte Sprache zum Beschreiben von und Zugreifen auf Webdienste.
  • REST verfügt nicht über eine Standardsprache für Service-Definitionen. Obwohl WADL einer der ersten vorgeschlagenen Standards war, ist es nicht sehr beliebt. Populärer ist die Verwendung von Swagger oder der Open API.

Transport


SOAP unterwirft dem Typ des Transportprotokolls keine Einschränkungen. Sie können entweder das Web-HTTP-Protokoll oder MQ verwenden.

REST impliziert die beste Verwendung des HTTP-Transportprotokolls

Einfache Implementierung


RESTFful-Webdienste sind im Allgemeinen viel einfacher zu implementieren als SOAP-basierte Webdienste.

  • REST verwendet normalerweise JSON, das einfacher zu analysieren und zu verarbeiten ist. Darüber hinaus benötigt REST keine Service-Definition, um einen Web-Service bereitzustellen.
  • Im Fall von SOAP müssen Sie Ihren Service jedoch mit WSDL definieren, und die Verarbeitung und Analyse von SOAP-XML-Nachrichten ist mit einem erheblichen Mehraufwand verbunden.

Es gibt auch ein Autorenvideo zu diesem Thema.

Zusammenfassung


In diesem Artikel haben wir die Unterschiede zwischen REST und SOAP im Detail untersucht.

Zusätzliche Lektüre


5 Kurse zum Erlernen von RESTful Web Services mit Java und Spring im Jahr 2019

10 API-Test-Tipps für Anfänger (SOAP und REST)

Source: https://habr.com/ru/post/de483204/


All Articles