2012-01-25 34 views
0

如何建立一个肥皂休息网关工作量最少?我在Rails 3.2服务器上提供了一个REST API。我的客户要求我提供一个SOAP API。我不想使用Rails来提供SOAP API,因为这可能比使用完全支持SOAP的框架将SOAP构建到REST网关要花费更多的工作。如何建立肥皂休息网关

回答

2

我刚刚注意到Rails 3.2会自动将SOAP请求分析到params散列(ActionDispatch :: ParamsParser Rack中间件)中。所以,我决定在Rails中实现网关。因为我并不真正在意实现一个全功能的SOAP服务器 - 我只想让它适用于我的客户当前的SOAP客户端 - 我只需从params散列中读取我需要的数据并构建xml响应使用Builder并在需要时发布静态wsdl文件。它将少于20行代码。

配置/ routes.rb中

Gateway::Application.routes.draw do 
    match "/clientx/echo" => "clientx#echo" 
end 

应用程序/控制器/ clientx_controller.rb

class ClientxController < ApplicationController 
    def echo 
    # authenticate client 
    # parse params 
    # send and receive rest request 
    # render response 
    end 
end 
+0

我也有同样的问题,我试过你的代码,它似乎并没有工作。我的回声行为中没有任何参数。如果你还做了其他事情,你可以让我知道吗?我正在使用curl向我的rails应用程序发送肥皂请求。 – RubyDev

+0

@RubyDev:请分享你的代码,以便我能看到你做了什么。 – Peder

1

Mule ESB怎么样?支持各种形式的输入和输出可能性。基于Mule自己实现了一个SOAP接收应用程序。

+0

感谢提示。他们没有在他们的网站上定价,我谈到的销售人员说他们的最小安装成本为14k美元。这比我希望的要多一点。 – Peder

+0

但它实际上是免费的!?安装非常简单。只有企业支持会花费你一些钱 - 但我认为你不需要它来完成简单的SOAP到REST转发。 –

+0

好吧,现在我明白了!谢谢! – Peder