Warum würde man REST anstelle von SOAP-basierte Dienste nutzen? [geschlossen]

StackOverflow https://stackoverflow.com/questions/90451

  •  01-07-2019
  •  | 
  •  

Frage

Attended heute eine interessante Demo auf REST, aber ich nicht aus einem einzigen Grunde denken konnte (noch wurde eine vorgelegt), warum REST in ohnehin besser oder einfacher zu verwenden und zu implementieren als ein SOAP-basierten Diensten Stapel.

Was sind einige der Gründe, warum jemand in der „realen Welt“ REST verwenden anstelle der SOAP-basierte Services?

War es hilfreich?

Lösung

weniger Overhead (kein SOAP-Umschlag jeden Anruf in wrap)

Weniger Duplizierung (HTTP bereits stellt Operationen wie DELETE, PUT, GET, usw., die sonst in einem SOAP-Umschlag dargestellt werden).

Weitere standardisiert - HTTP-Operationen sind gut verstanden und konsequent arbeiten. Einige SOAP-Implementierungen können pingelig erhalten.

Mehr Menschen lesbare und prüfbar (schwerer zu testen SOAP mit nur einem Browser).

Sie müssen nicht XML verwenden (gut Sie Art müssen nicht für SOAP entweder, aber es macht kaum Sinn, da Sie bereits Parsen des Umschlags tun).

Bibliotheken haben SOAP (Art) leicht gemacht. Aber Sie sind abstrahiert unter viel Redundanz entfernt, wie ich festgestellt habe. ja in der Theorie kann SOAP über andere Transporte gehen, um Reiten auf einer Schicht, die ähnliche Dinge zu vermeiden, aber in Wirklichkeit werden Sie alle arbeiten SOAP fast immer über HTTP zu tun ist.

Andere Tipps

RESTful Dienste sind viel einfacher zu konsumieren als SOAP basiert (regelmäßige) Dienste. Der Grund dafür ist, dass REST auf normalen HTTP-Anforderungen basiert, die Absicht ermöglicht von der Art der Anfrage abgeleitet werden wird gemacht (GET = retrive, POST = write, DELETE = entfernen, etc ...) und ist völlig staatenlos. Auf der anderen Seite könnte man argumentieren, dass es weniger flexibel ist, wie es mit dem Konzept eines Nachrichtenumschlages beseitigt, den Anforderungskontext enthält.

Nach meiner Erfahrung SOAP hat für Dienstleistungen innerhalb des Unternehmens und REST bevorzugt wurde für Dienste bevorzugt worden, die als öffentlicher APIs ausgesetzt sind.

Mit Tool wie WCF in .NET Framework ist es sehr trivial einen Dienst als REST oder SOAP zu implementieren.

Einige relevante Literatur:

Ich gehe davon aus, dass, wenn Sie sagen, „Web-Services“ Sie bedeuten, SOAP und WS- * Reihe von Standards. (Sonst könnte ich den REST-Service argumentieren sind "Web-Service").

Das kanonische Argument ist, dass die REST-Service eine bessere Übereinstimmung mit dem Design der Bahn ist - das heißt, die Gestaltung von HTTP und die damit verbundener Infrastruktur. Somit wird mehr kompatibel mit bestehenden Web-Tool und Techniken, um einen REST-Service.

Natürlich, wenn Sie ins Detail bohren, finden Sie heraus, dass beide Ansätze haben Stärken in unterschiedlichen Szenarien. Ist es diese Besonderheiten, die Sie interessiert sind?

Der Aufwand ist nicht so wichtig wie gute Architektur.

REST ist kein Protokoll ist eine Architektur, die gut skalierbare Design fördern. Es wird oft gewählt, weil zu viel Freiheit in RPC leicht zu einem schlechten Design führen kann.

Der andere Grund ist vorhersehbar Kosten von RESTful-Protokollen über HTTP, weil es (vor allem Proxies) bestehende Technologien nutzen kann. RPC Anschaffungskosten sind ziemlich niedrig, aber es ist in der Regel deutlich mit Last Intensivierung erhöhen.

REST ist umsetzungs Agnostiker und wesentlich transparenter, und das macht es ideal für öffentliche APIs, vor allem für große Websites wie Flickr, Amazon oder Digg, die ihre APIs als Marketing-Tools verwenden und wirklich wollen die Menschen ihre Daten zu konsumieren. Sie nicht sein wollen Hand hält 1000s Anfänger Entwickler, die ihre Scripting-Sprache der Wahl Buggy SOAP-Bibliothek zu debuggen versuchen.

Versus SOAP und WSDL, die für interne Anwendungen besser sind, wo Sie Drop-in haben Bibliotheken und bekannt clueful Menschen an beiden Enden. (Und Sie vielleicht müssen über Dinge wie Internet-Skala Load-Balancing ist es egal, HTTP-Caching etc.) Sie dann APIs erhalten, die selbst dokumentiert ist, bewahren Arten usw. mit Null-Arbeit.

Got Roy Fieldings trefflichsten Dissertation lesen zum Thema. Er ist ein ausgezeichneter Fall und war auf jeden Fall WAY seiner Zeit voraus, als er es schrieb (2000).

Steve Vinoski Blog und seine neuesten Artikel Durchlesen auf jeden Fall wert sind. Er ist ein ehemaliger CORBA-Guru, der wahrscheinlich das beste Buch zu diesem Thema mit Michi Henning schrieb, "Advanced CORBA® Programmierung mit C ++" . Aber er hat sich seit den Fehler seines Client / Server-Möglichkeiten gesehen, und jetzt schwört REST.

REST ermöglicht Ihre Nicht-Mutieren Operationen (das im Allgemeinen das GET-Verb verwenden) sein Cache gespeichert . Das heißt, durch den Client zwischengespeichert und / oder durch Proxies zwischengespeichert. Dies kann ein großer Gewinn sein!

REST ist im Grunde nur eine Möglichkeit, Web-Service zu implementieren. Es ist nur eine Möglichkeit, die Verwendung von HTTP korrekt den Web-Service abfragen, Sie zu schlagen versuchen.

http://www.xfront.com/REST-Web-Services.html http://en.wikipedia.org/wiki/Representational_State_Transfer

Es ist super einfach und schlank. Man könnte es mit Browser über http Verb tun: GET. Ich habe nicht einen Browser finden können generische HTTP-POST-Anfrage leicht manuell

Hier ist ein Datenpunkt: Amazon bietet seinen APIs in beiden REST und SOAP-Formate und 85% der Nutzung ist REST

.

REST ist einfacher zu implementieren, einfacher zu verstehen und eine höhere Leistung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top