2012-01-25 38 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