在没有视图的REST API的MVC框架中的控制器

我明白,MVC框架中的Controller作为模型和视图之间的接口。 如果我的后端是一个API(没有任何视图),控制器不需要? 如果是的话,我应该把我的CRUD操作放在模型中吗?

如果您只是计划执行REST操作而不需要返回Views,那么您当然应该查看一下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)都应该能够直接与数据层进行交互。

这是服务层的angular色。 服务层与数据层和其他服务交互。 这是拥有商业逻辑的人。

对于API(这是暴露给系统的东西),它的责任是声明input/输出数据是有效的,并进行一些转换(例如,如果input数据是string,将其转换为数字,布尔或任何)。

所以,我觉得在你的情况下,你应该把你的CRUD治疗方法放在一些轻量级的应用程序或域服务中,然后在你的API服务中调用它。