我刚分配给的一个应用程序使用ASP。NET MVC框架用于UI层。这让我想到了RubyonRails,以及MVC架构。
当我帮助构建一个带有rails的RESTful API时,我并没有真正使用View。。。只是RESTful端点和模型的控制器。
这是否意味着构建在Rails上的RESTful端点不遵循MVC架构,尽管Rails应该遵循MVC架构?
或者,Rails遵循MVC架构的事实是否意味着,即使没有真正的视图,构建在Rails上的RESTful端点也遵循MVC框架?
我想知道这是因为我当前的应用程序使用ASP。NET MVC框架,但只有一个视图和一个控制器,并对web服务进行AJAX调用以显示数据。我心想,它没有遵循MVC结构,这让我经过思考后得出了这个结论。
您的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宝石,如RABL,如果您喜欢这种风格,它们会使"视图"组件/方法更加明确。