首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Rails 3实现SOAP1.2服务器

用Rails 3实现SOAP1.2服务器
EN

Stack Overflow用户
提问于 2010-04-15 19:57:12
回答 4查看 4.8K关注 0票数 12

肥皂?你为什么要用那个?

我正在使用和Rails 3编写我的web应用程序。该应用程序使用Ustream的分水岭白标签广播服务为我的用户提供实时流。不幸的是,我在发展过程中遇到了一个障碍。分水岭允许应用程序通过在应用程序端实现SOAP服务来提供自己的身份验证层。此身份验证层必须在SOAP1.2中实现,才能与流域一起工作。令我非常沮丧的是,Ruby社区似乎已经将my的旧SOAP推向了一个充满REST和Unicorns的更加光明的未来。

这让我在99.9%的时间里感到快乐。然而,现在我需要在我的新Rails 3应用程序中创建一个SOAP1.2端点。

如果任何人有任何建议或图书馆,我可以使用,我将非常感谢。

我已经做过的事

  • 尝试了Ruby中内置的SOAP支持。不幸的是,它似乎不支持SOAP1.2。
  • 查看了WSO2,但不想在我的服务器上构建一组广泛的Ruby扩展,仅仅是为了支持SOAP。
  • 在确定我是一个懒惰的程序员之前,先考虑一下xml响应的硬编码。
EN

回答 4

Stack Overflow用户

发布于 2010-11-03 17:37:20

自从这个Q被发布到现在已经有一段时间了,但是,SOAP也没有加速。我想你已经实现了什么,愿意分享吗?

不管怎样,作为一种回答,我有幸有一位客户强迫我使用他的SOAP服务(他们出色的SOA平台不支持其他格式.)都是用来提取和推送数据的。我只消费,因为我自己为他人提供了漂亮而干净的RESTful网络服务。我一直在用塞翁(法语做肥皂?)大获全胜

http://savonrb.com

如果您真的很懒,您将硬编码SOAP信封结构并输入动态数据。下面是一个简单的例子。

代码语言:javascript
复制
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

这是一种使用它的方法

代码语言:javascript
复制
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服务真正的痛苦。希望这能帮到任何人。

票数 5
EN

Stack Overflow用户

发布于 2012-05-29 10:05:11

如果无法避免Rails 3中的SOAP,请尝试wash_out gem。你可以在:输出找到它。

我们用在我们的系统里。这并不是傻瓜,而且还在经历一些变化,至少你可以开始。

虽然Rails 3已经停止支持SOAP,但它可以帮助您更快地开始创建。任何感兴趣的人都应该看看github上的wash_out wiki。在我们的例子中,客户端想要公开一个;我们试着用其他的方式。最后,我们不得不对肥皂说是。我试过aws,soap4r --但wash_out却是最合适的。

票数 3
EN

Stack Overflow用户

发布于 2016-06-07 12:15:57

您可以将此gem用于soap实现。

萨翁

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2648550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档