MVC 或 Rest 或两者兼而有之
Posted
技术标签:
【中文标题】MVC 或 Rest 或两者兼而有之【英文标题】:MVC or Rest or Both 【发布时间】:2011-06-17 22:27:37 【问题描述】:我正在设计一个基于 Web 的用户界面的服务器端,这将是 javascript 密集型的。
我最初想使用 MVC 解决方案,但现在我想使用基于 REST 的解决方案,例如 Jersey 或 Restlets。
这通常是一种或另一种类型的决定,还是可以作为一种组合解决方案?
谢谢, 迈克
【问题讨论】:
MVC 和 REST 是完全不同的概念。 rest 和 MVC 有什么共同点? 您是指基于请求的 MVC 还是基于组件的 MVC 框架? 【参考方案1】:MVC 是关于应用程序内部如何工作的。
REST 是关于您的应用如何与其他应用“对话”的。
你可以把它们组合起来。
许多现代框架实际上都是基于 MVC 的,并且可以轻松实现 REST Web 服务:Ruby on Rails、带有 SpringMVC 的 Java Spring Framework、Django、Backbone.js
【讨论】:
MVC 是一种设计模式,用于创建关注点分离并避免紧密耦合的数据、业务和表示逻辑。 REST 是关于与无状态资源交互的。 Spring 本身并不是一个 MVC 框架。 RoR 的 Java 表亲是使用 Groovy 的 Grails。 正如您在稍后的回答中指出的那样“我见过的用于构建能够支持 REST 的 MVC Web 应用程序的最佳 Java 框架之一是 SpringMVC” 当我阅读到目前为止的回复时,我意识到我可能应该更具体一点。我确实了解 MVC 和 REST 之间的区别。我认为我的问题与我正在使用的框架有关。我正在使用 FrontMan。它是使用前端控制器的轻量级 Java MVC 框架。所有请求都从前端控制器分派到适当的类以处理请求。 myserver.com/myapp/doSomething myapp/* 被映射到前端控制器我想知道如何处理 REST 请求。我认为他们不应该通过前端控制器 是的,他们应该这样做。对myserver.com/myapp/resource
等资源的纯 HTTP 请求中的 REST 请求。【参考方案2】:
它们是解决不同问题的模式/解决方案。
REST 为用户、客户端软件等清理并简化了对 Web 应用程序功能的寻址访问。
MVC 提供了一种组织应用程序代码的方法,使其更易于维护。
【讨论】:
【参考方案3】:SpringMVC 是我见过的用于构建能够支持 REST 的 MVC Web 应用程序的最佳 Java 框架之一。 This blog post 概述了自 3.0 版以来 SpringMVC 中的 REST 功能。我使用 SpringMVC 和 Jersey 开发了 REST 服务,它们具有相当的可比性。
【讨论】:
这是一个视频,可引导您从头开始构建一个,并且比自 Spring 3.2 以来的博客文章更新:pluralsight.com/training/Courses/TableOfContents/…【参考方案4】:MVC 是一种适用于应用程序层的架构设计模式。
文件夹结构:
Models/YourClassModel.php
Views/Home/HomeView.php
Controllers/Controller.php
index.php
应用程序样式REST 是应用程序的具象状态转移。
【讨论】:
以上是关于MVC 或 Rest 或两者兼而有之的主要内容,如果未能解决你的问题,请参考以下文章
Spring MVC REST - 根据请求内容类型返回 xml 或 json
删除 TabPage:Dispose 或 Clear 或两者兼而有之?
.NET 是不是使用并发性或并行性或两者兼而有之? [关闭]
使用 passport-saml 注销:req.logout() 或 Strategy.logout(),或两者兼而有之?