Frage

Mein Bauchgefühl ist, dass dokumentenbasierte Webdienste in der Praxis bevorzugt werden – ist das die Erfahrung anderer Leute?Sind sie leichter zu unterstützen?(Mir ist aufgefallen, dass SharePoint „Any“ für den „Dokumenttyp“ in seiner WSDL-Schnittstelle verwendet. Ich vermute, das macht es dokumentbasiert.)

Außerdem: Bieten die Leute jetzt sowohl WSDL- als auch Rest-Dienste für die gleiche Funktionalität an?WSDL ist für die Codegenerierung beliebt, aber für Frontends wie PHP und Rails scheinen sie den Rest zu bevorzugen.

War es hilfreich?

Lösung

Dokument versus RPC ist nur dann eine Frage, wenn Sie SOAP-Webdienste verwenden, die eine Dienstbeschreibung erfordern (WSDL).RESTful-Webdienste verwenden WSDL nicht, da der Dienst damit nicht beschrieben werden kann und man den Eindruck hat, dass REST einfacher und leichter zu verstehen ist.Einige Leute haben vorgeschlagen WADL als eine Möglichkeit, REST-Dienste zu beschreiben.

Sprachen wie Python, Ruby und PHP erleichtern die Arbeit mit REST.Mit der WSDL wird C#-Code (ein Webdienst-Proxy) generiert, der problemlos aus einer statischen Sprache aufgerufen werden kann.Dies geschieht, wenn Sie a hinzufügen Servicereferenz oder Webreferenz in Visual Studio.

Ob Sie SOAP- oder REST-Dienste bereitstellen, hängt von Ihrer Benutzerpopulation ab.Ob die Dienste über das Internet oder nur innerhalb Ihrer Organisation genutzt werden sollen, beeinflusst Ihre Wahl.SOAP verfügt möglicherweise über einige Funktionen (WS-*-Standards), die für den B2B- oder internen Gebrauch gut funktionieren, für einen Internetdienst jedoch schlecht sind.

Dokument/Literal versus RPC für SOAP-Dienste werden hier beschrieben IBM DevelopWorks-Artikel.Dokument/Literal gilt im Hinblick auf die Interoperabilität (Java zu .NET usw.) im Allgemeinen als die beste Verwendung.Ob die Unterstützung einfacher ist, hängt von Ihren Umständen ab.Meiner persönlichen Meinung nach neigen die Leute dazu, diese Dinge komplizierter zu machen, als sie sein müssten, und der einfachere Ansatz von REST ist überlegen.

Andere Tipps

Wie bereits erwähnt, ist es nach Möglichkeit besser, das Dokumentliteral gegenüber der RPC-Verschlüsselung zu wählen.Es ist wahr, dass die alten Java-Bibliotheken (Axis1, Glue und andere prähistorische Dinge) nur RPC-codiert unterstützen, in den modernsten Java-SOAP-Bibliotheken von heute wird dies jedoch einfach nicht unterstützt (z. B.AXIS2, XFire, CXF).Versuchen Sie daher, RPC-codierte Dienste nur dann verfügbar zu machen, wenn Sie wissen, dass Sie es mit einem Verbraucher zu tun haben, der es nicht besser kann.Aber andererseits könnte vielleicht nur XML RPC für diese Legacy-Implementierungen hilfreich sein.

Die Antwort von BiranLy ist ausgezeichnet.Ich möchte nur hinzufügen, dass Dokument vs. RPC auch auf Implementierungsprobleme zurückzuführen sein kann.Wir haben festgestellt, dass Microsoft Dokumente bevorzugt, während unsere Java-basierten Bibliotheken RPC-basiert waren.Was auch immer Sie wählen, stellen Sie sicher, dass Sie wissen, was andere potenzielle Kunden ebenfalls erwarten.

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