Asp.net web api 对所有资源使用一个控制器是一种不好的做法吗?

Asp.net web api 对所有资源使用一个控制器是一种不好的做法吗?,asp.net-web-api,controller,resources,Asp.net Web Api,Controller,Resources,ASP.NET Web API,拥有一个用于所有业务对象的控制器是否是一种良好的做法 例如,我的控制器中有以下路由: [Route("{resource}/{id}")] [HttpGet] public HttpResponseMessage Get(string resource, int id) { // code not shown for brevity... } 基于此,我有大约50个业务对象,每个对象都有一个名为“Resource”的属性,它基本上是以字符串形式表示的类的

ASP.NET Web API,拥有一个用于所有业务对象的控制器是否是一种良好的做法

例如,我的控制器中有以下路由:

[Route("{resource}/{id}")]
[HttpGet]
public HttpResponseMessage Get(string resource, int id)
{
    // code not shown for brevity...
}
基于此,我有大约50个业务对象,每个对象都有一个名为“Resource”的属性,它基本上是以字符串形式表示的类的名称(例如“Customer”、“Order”)。在上面的控制器操作中,我使用路由参数“resource”和“id”检索资源。例如:

GET/Customer/1234 和 获取/订购/5678


这是坏习惯吗?为每个业务对象创建一个控制器是否更好?每种方法的优缺点是什么?

我喜欢苹果的做法

每个视图仅由一个视图控制器控制iOS视图控制器编程指南 这样做的目的是,您应该能够轻松地交换视图。在IMO中,通过每个视图只有一个控制器,可以更容易地实现这一点

虽然这是一个一般的经验法则,但所需控制器的数量取决于Web应用程序中的模块和子模块的数量

作为补充,将控制员组织到不同的区域将是有益的。区域的概念构建在ASP.NET MVC框架中,它简化了服务于一个模块的控制器的组织

有一些相关的讨论:


我喜欢苹果的做法

每个视图仅由一个视图控制器控制iOS视图控制器编程指南 这样做的目的是,您应该能够轻松地交换视图。在IMO中,通过每个视图只有一个控制器,可以更容易地实现这一点

虽然这是一个一般的经验法则,但所需控制器的数量取决于Web应用程序中的模块和子模块的数量

作为补充,将控制员组织到不同的区域将是有益的。区域的概念构建在ASP.NET MVC框架中,它简化了服务于一个模块的控制器的组织

有一些相关的讨论:


我的问题不是关于观点。。。我的问题不是关于观点。。。见下面我的答案