我的直觉是基于文档的 Web 服务在实践中是首选 - 这是其他人的经验吗?他们更容易得到支持吗?(我注意到 SharePoint 在其 WSDL 接口中使用 Any 作为“文档类型”,我猜这使得它基于文档)。

另外,人们现在是否为相同的功能同时提供 WSDL 和 Rest 类型服务?WSDL 在代码生成方面很流行,但对于 PHP 和 Rails 等前端,他们似乎更喜欢休息。

有帮助吗?

解决方案

仅当您使用需要服务描述的 SOAP Web 服务时,文档与 RPC 才只是一个问题(WSDL)。RESTful Web 服务并不是不使用 WSDL,因为服务无法用它来描述,感觉 REST 更简单、更容易理解。有人提出 WADL 作为描述 REST 服务的一种方式。

Python、Ruby 和 PHP 等语言使使用 REST 变得更加容易。WSDL 用于生成可以从静态语言轻松调用的 C# 代码(Web 服务代理)。当您添加一个时会发生这种情况 服务参考 或者 网页参考 在视觉工作室中。

您提供 SOAP 还是 REST 服务取决于您的用户群体。这些服务是通过互联网使用还是仅在组织内部使用会影响您的选择。SOAP 可能具有一些非常适合 B2B 或内部使用的功能(WS-* 标准),但不适合 Internet 服务。

SOAP 服务的文档/文字与 RPC 的描述在此 IBM DevelopWorks 文章. 。就互操作性(Java 到 .NET 等)而言,文档/文字通常被认为是最好使用的。至于是否更容易支持,那就要看你的情况了。我个人的观点是,人们倾向于使事情变得比实际需要的更复杂,而 REST 更简单的方法更优越。

其他提示

如前所述,尽可能选择文档文字而不是 RPC 编码更好。确实,旧的 Java 库(Axis1、Glue 和其他史前的东西)仅支持 RPC 编码,但是在当今最现代的 Java SOAP 库中却不支持它(例如AXIS2、XFire、CXF)。因此,仅当您知道需要与无法做得更好的消费者打交道时,才尝试公开 RPC 编码的服务。但话又说回来,也许只有 XML RPC 才能对这些遗留实现有所帮助。

BiranLy 的回答非常好。我想补充一点,文档与 RPC 也可以归结为实现问题。我们发现 Microsoft 更喜欢文档,而我们基于 Java 的库则基于 RPC。无论您选择什么,请确保您知道其他潜在客户也会假设什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top