基于文档或RPC的Web服务

Mic*_*ale 19 rest wsdl web-services

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

此外 - 人们现在是否提供相同功能的WSDL和Rest类型服务?WSDL很受代码生成的欢迎,但对于像PHP和Rails这样的前端,他们似乎更喜欢休息.

Bri*_*tle 30

如果您使用需要服务描述(WSDL)的SOAP Web服务,则文档与RPC只是一个问题.RESTful Web服务不使用WSDL,因为它无法描述服务,并且感觉REST更简单易懂.有些人提出WADL作为描述REST服务的一种方式.

Python,Ruby和PHP等语言使得使用REST变得更容易.WSDL用于生成可以从静态语言轻松调用的C#代码(Web服务代理).在Visual Studio中添加服务引用Web引用时会发生这种情况.

是否提供SOAP或REST服务取决于您的用户群.无论是通过互联网使用服务还是仅在组织内部使用服务都会影响您的选择.SOAP可能具有一些适用于B2B或内部使用的功能(WS-*标准),但对于互联网服务却很糟糕.

IBM DevelopWorks文章中描述了Document/literal与RPC for SOAP服务.文档/文字通常被认为是最好的互操作性(Java到.NET等).至于是否更容易支持,这取决于您的具体情况.我个人的观点是,人们倾向于使这些东西比它需要的更复杂,而REST的简单方法更优越.

  • 链接描述了一切,阅读后我所有的担忧都被拒绝了.http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ (3认同)

Lio*_*ain 5

如前所述,最好尽可能选择基于RPC编码的Document Literal。确实,旧的Java库(Axis1,Glue和其他史前的东西)仅支持RPC编码,但是在当今最现代的Java SOAP库中,它不支持(例如AXIS2,XFire,CXF)。因此,仅当您知道需要与性能不佳的使用者打交道时,才尝试公开RPC编码的服务。但是话又说回来,也许XML RPC可以为这些传统实现提供帮助。