【问题标题】:Designing Web Service Using Ruby on Rails - Mapping ActiveRecord Models使用 Ruby on Rails 设计 Web 服务 - 映射 ActiveRecord 模型
【发布时间】:2010-05-25 02:42:59
【问题描述】:

我已经构建了一个 RoR 应用程序,现在想发布一个 RESTful Web 服务来与我的应用程序交互。

我不确定具体要去哪里,我不想简单地公开我的 ActiveRecord 模型,因为每个模型上都有一些不需要或不应该通过这样的 API 公开的数据。我也不想创建 SOAP 解决方案。

我的应用程序是使用 Rails 2.3.5 构建的,我希望在 Rails 3.0 发布后尽快迁移到它。

我基本上是在寻找一种将我的 ActiveRecord 模型映射到将通过 Web 服务公开的“模型”的方法。 ActiveResource 是正确的使用方法吗? ActionWebService 呢?

【问题讨论】:

    标签: ruby-on-rails web-services activerecord rest activeresource


    【解决方案1】:

    您可以通过一个(或多个)控制器来做到这一点。您的 RESTful 控制器操作可以为传入的 Web 服务请求定义 API,并且您可以在响应中呈现 XML 或 JSON,而不是呈现 HTML 视图。

    我确信有更复杂的方法可以做到这一点,但这是简单的方法。

    【讨论】:

    • 并不是说您也可以在模型中覆盖 #as_json 来决定要公开的值以及要应用的转换。有关使用 #as_json 与 #to_json 的详细信息,请参阅 stackoverflow.com/questions/2572284/…
    • 在每个模型上覆盖 to_json 和 to_xml 方法是否被认为“更好”?我认为我想要完成的是可以长期维护的东西,而不会破坏我的模型。
    猜你喜欢
    • 2016-10-20
    • 2015-07-15
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多