Leistung ist breites Thema.
Wenn Sie die Last des Servers meinen, hat REST eine etwas bessere Leistung, da es neben HTTP nur minimalen Overhead verursacht. Normalerweise bringt SOAP einen Stapel verschiedener (generierter) Handler und Parser mit. Wie dem auch sei, der Leistungsunterschied selbst ist nicht so groß, aber RESTful Service ist einfacher zu skalieren, da Sie keine serverseitigen Sitzungen haben.
Wenn Sie die Leistung des Netzwerks (d. H. Bandbreite) meinen, hat REST eine viel bessere Leistung. Im Grunde ist es nur HTTP. Kein Aufwand. Also, wenn Ihr Dienst sowieso über HTTP läuft, können Sie nicht viel schlanker als REST bekommen. Wenn Sie Ihre Repräsentationen in JSON (im Gegensatz zu XML) codieren, sparen Sie außerdem viel mehr Bytes.
Kurz gesagt, würde ich "ja" sagen, Sie werden mit REST leistungsfähiger sein. Außerdem wird es (meiner Meinung nach) Ihre Schnittstelle für Ihre Kunden einfacher zu konsumieren. So wird nicht nur Ihr Server schlanker, sondern auch der Client.
jedoch einige Dinge zu beachten, (da Sie gefragt, ‚was Sie verlieren?‘):
RESTful Schnittstellen sind in der Regel ein bisschen mehr „gesprächig“ sein, also auf Ihrer Domain abhängig und wie Sie entwerfen Sie Ihre Ressourcen, können Sie am Ende mehr HTTP-Anfragen ausführen.
SOAP hat eine sehr breite Werkzeugunterstützung. Zum Beispiel, Berater lieben es, weil sie Tools verwenden können, um die Schnittstelle zu definieren und generieren die WSDL-Datei und Entwickler lieben es, weil sie eine andere Reihe von Tools verwenden können, um den gesamten Netzwerkcode aus dieser WSDL-Datei zu generieren. Außerdem hat XML als Repräsentation Schemata und Validatoren, die in einigen Fällen ein Schlüsselproblem darstellen können. (JSON und REST haben ähnliche Sachen kommen aber die Tool-Unterstützung ist weit hinter)
Ist das ein dup von http://stackoverflow.com/questions/106546/performance-of-soap-vs-xml-rpc-or-rest/? – pjz
Was du verlierst, sind die "over engineering" :-) Aspekte von SOAP. Verschlüsselung, Nachrichtensignierung, Authentifizierung, Nichtabstreitbarkeit, selbstbeschreibende Dienste etc.etc. Wenn Sie dies tun müssen (und die meisten Dienste nicht!), Dann gehen Sie zu SOAP. –