【问题标题】:Does creating a RESTful API with rails follow an MVC Architecture?使用 rails 创建 RESTful API 是否遵循 MVC 架构?
【发布时间】:2015-06-05 05:30:12
【问题描述】:

我刚刚分配到的一个应用程序使用 ASP.NET MVC 框架作为 UI 层。然后它让我想到了 Ruby on Rails 以及它的 MVC 架构。

当我使用 Rails 帮助构建 RESTful API 时,我并没有真正使用视图...只是用于 RESTful 端点和模型的控制器。

这是否意味着在 Rails 上构建的 RESTful 端点不遵循 MVC 架构,尽管 Rails 应该这样做?

或者说 Rails 遵循 MVC 架构这一事实是否意味着构建在 Rails 上的 RESTful 端点也遵循 MVC 框架,即使没有真正的视图?

我想知道这是因为我当前的应用程序使用 ASP.NET MVC 框架作为它的 UI,但只有一个视图和一个控制器,并通过 AJAX 调用 Web 服务来显示要显示的数据。我心想它没有遵循 MVC 结构,这让我经过深思熟虑。

【问题讨论】:

    标签: ruby-on-rails asp.net-mvc model-view-controller


    【解决方案1】:

    您的 Rails API 仍然是 MVC。可以这么说,“视图”组件可能只是隐式生成的。也就是说,Rails 有时会使用一组默认行为来生成隐式视图。例如,在 API 中,如果您使用 respond_to :json 和 respond_with(@my_object),则将自动生成 JSON“视图”作为来自 @my_object.to_json 的响应。您可以通过覆盖@my_object.as_json 方法来覆盖此“视图”......或者您可以花哨并为您的对象添加一个 Presenter 层并让它生成 JSON“视图”代码。无论哪种方式,即使您一直没有明确的视图模板,它仍然是 MVC。

    此外,还存在一些 Rails gem,例如 RABL,如果您喜欢这种风格,它们会使“视图”组件/方法更加明确。

    【讨论】:

    • 好的,Rails API 仍然是 MVC。 ASP.NET UI 怎么样?它使用 ASP.NET MVC 框架,但仅使用 View 和 Controller。它没有模型组件,但仍然使用 AJAX 调用来获取数据,这些服务使用 ORM 来操作数据。我可以考虑 MVC(尽管它没有明确的模型组件)吗?还是只有没有显式 View 的应用程序仍然可以被视为 MVC?
    • 很抱歉,我不愿意回答 ASP.NET。但我不认为我的回答应该被理解为只能隐式处理“视图”组件。 MVC 是一种组织职责的方式。如果您的 ASP.NET 框架有一个独立于控制器的业务逻辑专用组件,那么它可能仍被视为“模型”。但这听起来更像是一个 View-Controller 设置。
    猜你喜欢
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    相关资源
    最近更新 更多