我刚刚被分配到的一个应用程序在 UI 层使用 ASP.NET MVC 框架。这让我想到了 Ruby on Rails 及其 MVC 架构。
当我帮助使用 Rails 构建 RESTful API 时,我并没有真正使用 View ...只是用于 RESTful 端点和模型的 Controller 。
这是否意味着构建在 Rails 上的 RESTful 端点不遵循 MVC 架构,尽管 Rails 应该遵循 MVC 架构?
或者 Rails 遵循 MVC 架构这一事实是否意味着构建在 Rails 上的 RESTful 端点也遵循 MVC 框架,即使实际上没有 View ?
我对此感到疑惑,因为我当前的应用程序为其 UI 使用 ASP.NET MVC 框架,但只有一个 View 和一个 Controller ,并且对 Web 服务进行 AJAX 调用以获取要显示的数据。我心想它没有遵循 MVC 结构,这让我经过深思熟虑。
最佳答案
您的 Rails API 仍然是 MVC。 “ View ”组件可能只是隐式生成的,可以这么说。也就是说,Rails 有时会使用一组默认行为来生成隐式 View 。例如,在 API 中,如果您使用 respond_to :json
和 respond_with(@my_object)
,那么将自动生成一个 JSON“ View ”作为来自 @my_object.to_json
。您可以通过重写 @my_object.as_json
方法来重写此“ View ”...或者您可以花点心思向您的对象添加一个 Presenter 层,并让它生成 JSON“ View ”代码。无论哪种方式,即使您始终没有显式 View 模板,它仍然是 MVC。
此外,还存在一些 Rails gem,例如 RABL ,如果您喜欢那种风格,它会使“ View ”组件/方法更加明确。
关于ruby-on-rails - 使用 Rails 创建 RESTful API 是否遵循 MVC 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376040/