1

我已經組合了一個RoR應用程序,現在想發佈一個RESTful Web服務來與我的應用程序進行交互。使用Ruby on Rails設計Web服務 - 映射ActiveRecord模型

我不確定要去哪裏,我不想簡單地公開我的ActiveRecord模型,因爲每個模型上都有一些不需要或不應該通過這樣的API公開的數據。我也不想創建一個SOAP解決方案。

我的應用程序是使用Rails 2.3.5構建的,我希望在其發佈後不久就可以遷移到Rails 3.0。

我基本上在尋找一種方法將我的ActiveRecord模型映射到可通過Web服務公開的「模型」。 ActiveResource是否正確使用?那麼ActionWebService呢?

回答

3

您可以通過控制器(或控制器)來實現。您的RESTful控制器操作可以爲傳入的Web服務請求定義API,並且您可以在響應中呈現XML或JSON,而不是呈現HTML視圖。

我確定有更復雜的方法來做到這一點,但這是簡單的方法。

+0

不是你也可以重寫模型中的#as_json來決定你將暴露什麼值,並且變換你想要應用的值。有關使用#as_json和#to_json的詳細信息,請參閱http://stackoverflow.com/questions/2572284/override-to-json-in-rails-2-3-5/2574900#2574900。 – 2010-05-25 04:52:45

+0

重寫每個模型上的to_json和to_xml方法是否被認爲是「更好的」?我認爲我正在努力實現的目標是長期可以維持的,而不會讓我的模型蒙上陰影。 – 2010-05-25 10:56:56