在Ruby中使用SOAP的最佳方法是什么?

jco*_*oby 89 ruby soap ruby-on-rails

我的客户要求我将第三方API集成到他们的Rails应用程序中.唯一的问题是API使用SOAP.Ruby基本上放弃了SOAP,转而使用REST.它们提供了一个显然适用于Java-Ruby桥接器的Java适配器,但是如果可能的话,我们希望将它全部保存在Ruby中.我看了一下soap4r,但它的名声似乎有些不好.

那么将SOAP调用集成到Rails应用程序的最佳方法是什么?

rub*_*iii 168

我构建了Savon,以便尽可能简单地通过Ruby与SOAP Web服务进行交互.
我建议你看看.

  • 为savon +1,而不是bash soap4r - 但我的体验非常糟糕.缺乏良好的文档和太麻烦. (5认同)

Ori*_*rds 35

我们使用了内置soap/wsdlDriver类,实际上是SOAP4R.它的狗很慢,但很简单.你从gems/etc获得的SOAP4R只是同一件事的更新版本.

示例代码:

require 'soap/wsdlDriver'

client = SOAP::WSDLDriverFactory.new( 'http://example.com/service.wsdl' ).create_rpc_driver
result = client.doStuff();
Run Code Online (Sandbox Code Playgroud)

就是这样

  • 这是"Dog Slow"的部分原因是您每次连接到服务时都在构建代理.您可以通过使用wsdl2ruby永久构建代理然后调用预生成的代理来避免这种痛苦. (37认同)
  • 我们可以,但这意味着要安装wsdl2ruby等等.有时Dog Slow很好:-) (6认同)
  • 04/2015:Soap4r已经死了,网站已关闭.看来萨翁是目前的共同选择. (3认同)

pho*_*oet 14

我们从Handsoap切换到Savon.

这是一系列比较两个客户端库的博客文章.


bru*_*ton 6

我也推荐Savon.我花了太多时间试图处理Soap4R,没有结果.缺乏功能,没有文档.

Savon是我的答案.