【发布时间】:2013-07-21 09:20:47
【问题描述】:
我了解 MVC 框架中的控制器充当模型和视图之间的接口。如果我的后端是 API(没有任何视图),是否不需要控制器?如果是这样,我应该将我的 CRUD 操作放在模型中吗?
【问题讨论】:
标签: node.js rest model-view-controller express crud
我了解 MVC 框架中的控制器充当模型和视图之间的接口。如果我的后端是 API(没有任何视图),是否不需要控制器?如果是这样,我应该将我的 CRUD 操作放在模型中吗?
【问题讨论】:
标签: node.js rest model-view-controller express crud
如果您只是计划执行 REST 操作而不需要返回视图 - 您当然应该查看 WEB Api 控制器。 Web Api 允许您将 REST 操作定义为操作名称本身,例如
public void Post { ExampleModel model}
public void Put { AnotherModel model }
public Something Get { string id }
public void Merge { string name, int age }
使用 Web Api 的另一个额外好处是,传入方法的值会在调用方法并返回 POCO 时自动映射。
【讨论】:
我认为 API 有点像用户界面。它是一种媒体,位于系统边界,允许与系统及其数据进行(间接)交互。
数据访问通常是系统核心机制之一。任何接口层(UI 或 WS)都应该能够直接与数据层交互。
这是服务层的角色。服务层与数据层和其他服务交互。这是拥有业务逻辑的那个。
对于 API(即您在系统之外向世界公开的东西),它的职责是断言输入/输出数据是有效的,并进行一些转换(例如,如果输入数据是字符串,将其转换为数字、布尔值或其他)。
所以,我认为在你的情况下,你应该把你的 CRUD 处理放在一些轻量级的应用程序或域服务中,然后在你的 API 服务中调用它。
【讨论】: