使用 rails 创建 RESTful API 是否遵循 MVC 架构?

Does creating a RESTful API with rails follow an MVC Architecture?

我刚被分配到的一个应用程序在 UI 层使用了 ASP.NET MVC 框架。然后它让我想到 Rails 上的 Ruby,它也是 MVC 架构。

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

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

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

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

您的 Rails API 仍然是 MVC。 "view" 组件可能只是隐式生成的,可以这么说。也就是说,Rails 有时会使用一组默认行为来生成隐式视图。例如,在 API 中,如果您使用 respond_to :jsonrespond_with(@my_object),则 JSON "view" 将自动生成为来自 [=12= 的响应].您可以通过重写 @my_object.as_json 方法来重写此 "view" ... 或者您可以花点时间向对象添加 Presenter 层并让它生成 JSON "view" 代码.无论哪种方式,即使您始终没有显式视图模板,它仍然是 MVC。

另外,一些 Rails gems 存在,例如 RABL,如果您喜欢这种风格,它们会使 "view" component/approach 更加明确。