肥皂?你为什么要用那个?
我正在使用和Rails 3编写我的web应用程序。该应用程序使用Ustream的分水岭白标签广播服务为我的用户提供实时流。不幸的是,我在发展过程中遇到了一个障碍。分水岭允许应用程序通过在应用程序端实现SOAP服务来提供自己的身份验证层。此身份验证层必须在SOAP1.2中实现,才能与流域一起工作。令我非常沮丧的是,Ruby社区似乎已经将my的旧SOAP推向了一个充满REST和Unicorns的更加光明的未来。
这让我在99.9%的时间里感到快乐。然而,现在我需要在我的新Rails 3应用程序中创建一个SOAP1.2端点。
如果任何人有任何建议或图书馆,我可以使用,我将非常感谢。
我已经做过的事
发布于 2010-11-03 17:37:20
自从这个Q被发布到现在已经有一段时间了,但是,SOAP也没有加速。我想你已经实现了什么,愿意分享吗?
不管怎样,作为一种回答,我有幸有一位客户强迫我使用他的SOAP服务(他们出色的SOA平台不支持其他格式.)都是用来提取和推送数据的。我只消费,因为我自己为他人提供了漂亮而干净的RESTful网络服务。我一直在用塞翁(法语做肥皂?)大获全胜
http://savonrb.com
如果您真的很懒,您将硬编码SOAP信封结构并输入动态数据。下面是一个简单的例子。
def soap_envelope(pCode)
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:prod='http://xmlns.aBigCompany.com/path/to/NeededService'>
<soapenv:Header/>
<soapenv:Body>
<something:NeededServiceRequest>
<something:productCode>#{pCode}</something:productCode>
</something:NeededServiceRequest>
</soapenv:Body>
</soapenv:Envelope>"
end这是一种使用它的方法
products_wsdl = Savon::Client.new "http://ipAtBigCo:xxxx/path/to/services/NeededService?wsdl"
begin
response = products_wsdl.process! do |soap|
soap.xml = soap_envelope("someProductCode")
end
rescue => e
MyLogger.error "Error: SOAP call for code #{pCode} failed. ++"
raise e
end
response.to_hash # This is the nice part 关于SOAP1.2,savon支持它。关于我实际上是一个SOAP服务提供商,我还没有在rails中做过(打它!)只能祝你好运。必须自己开发愚蠢的WSDL才是SOAP服务真正的痛苦。希望这能帮到任何人。
发布于 2012-05-29 10:05:11
如果无法避免Rails 3中的SOAP,请尝试wash_out gem。你可以在:输出找到它。
我们用在我们的系统里。这并不是傻瓜,而且还在经历一些变化,至少你可以开始。
虽然Rails 3已经停止支持SOAP,但它可以帮助您更快地开始创建。任何感兴趣的人都应该看看github上的wash_out wiki。在我们的例子中,客户端想要公开一个;我们试着用其他的方式。最后,我们不得不对肥皂说是。我试过aws,soap4r --但wash_out却是最合适的。
发布于 2016-06-07 12:15:57
您可以将此gem用于soap实现。
https://stackoverflow.com/questions/2648550
复制相似问题