REST versus SOAP. Es ist schon seit einiger Zeit ein Thema. Und wirklich, Sie sind nur zwei Antworten auf dieselbe Frage: Wie greife ich auf das Internet zu? Dienste.
Aber eine Entscheidung über die andere kann überraschend schwierig sein.
SOAP (Simple Object Access Protocol) ist ein standardbasiertes Web Dienstezugriffsprotokoll, das es schon lange gibt. Ursprünglich von Microsoft entwickelt, ist SOAP nicht so einfach wie das Akronym vorschlagen würde.
REST (Representational State Transfer) ist ein weiterer Standard, hergestellt in Antwort auf die Mängel von SOAP. Es versucht, die Probleme mit SOAP zu beheben und bieten eine einfachere Methode für den Zugriff auf Webdienste.
Was ist mit GraphQL?
Natürlich hat GraphQL in letzter Zeit für Furore gesorgt, worüber wir gesprochen haben
ausführlich in anderen Artikeln. Aber es ist immer noch nicht so standardisiert wie
REST und SOAP, also werden wir uns in diesem Artikel nur auf diese konzentrieren
zwei.
Sowohl SOAP als auch REST müssen bei der Entscheidung, welches Protokoll verwendet werden soll, berücksichtigt werden.
Die Ähnlichkeiten
Während SOAP und REST Ähnlichkeiten mit dem HTTP-Protokoll aufweisen, bietet SOAP
ist ein strengerer Satz von Messaging-Mustern als REST. Die Regeln in SOAP
sind wichtig, weil wir keine Standardisierung erreichen können
ohne sie. REST als Architekturstil erfordert keine Verarbeitung
und ist natürlich flexibler. Sowohl SOAP als auch REST verlassen sich auf
gut etablierte Regeln, denen sich alle zugestimmt haben, sich daran zu halten
Interesse am Informationsaustausch.
Ein kurzer Überblick über SOAP
SOAP stützt sich ausschließlich auf XML, um Messaging-Dienste bereitzustellen. Microsoft hat SOAP ursprünglich entwickelt, um ältere Versionen zu ersetzen Technologien, die im Internet nicht gut funktionieren, wie z Distributed Component Object Model (DCOM) und Common Object Request Broker-Architektur (CORBA). Diese Technologien scheitern, weil sie sich darauf verlassen auf binäres Messaging. Das von SOAP verwendete XML-Messaging funktioniert besser über das Internet.
Nach einer ersten Veröffentlichung reichte Microsoft SOAP für das Internet ein Engineering Task Force (IETF), wo es standardisiert wurde. Seife ist entwickelt, um die Erweiterung zu unterstützen, also hat es alle möglichen anderen Akronyme und damit verbundene Abkürzungen wie WS-Addressing, WS-Policy, WS-Sicherheit, WS-Federation, WS-ReliableMessaging, WS-Koordination, WS-AtomicTransaction und WS-RemotePortlets. Tatsächlich finden Sie eine ganze Wäscheliste dieser Standards zu Web Services Standards.
Der Punkt ist, dass SOAP sehr erweiterbar ist, aber Sie verwenden nur die
Teile, die Sie für eine bestimmte Aufgabe benötigen. Zum Beispiel bei der Verwendung einer öffentlichen
Webdienst, der für alle frei verfügbar ist, haben Sie wirklich nicht
viel Bedarf an WS-Security.
Schwierigkeit hängt von der Programmiersprache ab
Das XML, das zum Senden von Anforderungen und Empfangen von Antworten in SOAP verwendet wird, kann werden
extrem komplex. In einigen Programmiersprachen müssen Sie bauen
diese Anfragen manuell, was problematisch wird, weil SOAP ist
intolerant gegenüber Fehlern. Andere Sprachen können jedoch Abkürzungen verwenden
SOAP bietet. Sie können Ihnen helfen, den für die Erstellung erforderlichen Aufwand zu reduzieren
die Anfrage und die Antwort zu parsen. In der Tat, wenn Sie mit .NET arbeiten
Sprachen, Sie sehen nicht einmal das XML.
Teil der Magie ist die Web Services Description Language (WSDL).
Dies ist eine weitere Datei, die mit SOAP verknüpft ist. Es bietet eine
Definition, wie der Webdienst funktioniert, sodass beim Erstellen einer
Bezug darauf kann die IDE den Prozess vollständig automatisieren. Also, die
Die Schwierigkeit bei der Verwendung von SOAP hängt zu einem großen Teil von Ihrer Sprache ab
verwenden.
Integrierte Fehlerbehandlung
Eines der wichtigsten SOAP-Features ist die eingebaute Fehlerbehandlung. Wenn
Es gibt ein Problem mit Ihrer Anfrage, die Antwort enthält einen Fehler
Informationen, die Sie verwenden können, um das Problem zu beheben. Vorausgesetzt, Sie könnten
den Webdienst nicht besitzen, ist diese besondere Funktion äußerst wichtig;
Andernfalls würden Sie raten, warum die Dinge nicht funktioniert haben. Die
Die Fehlerberichterstattung bietet sogar standardisierte Codes, damit dies möglich ist
um einige Fehlerbehandlungsaufgaben in Ihrem Code zu automatisieren.
Ein interessantes SOAP-Feature ist, dass Sie es nicht unbedingt mit dem HTTP-Transport müssen. Es gibt eine aktuelle Spezifikation für die Verwendung von SOAP über Simple Mail Transfer Protocol (SMTP) und es gibt keinen Grund, warum Sie es nicht über andere verwenden können Transporte. Tatsächlich haben Entwickler in einigen Sprachen wie Python und PHP, tun genau das.
Anfrageformular