【发布时间】:2014-04-11 22:45:39
【问题描述】:
我正在使用 Web API v2,并且我有一些模型需要对其进行 CRUD 操作。例如,我有一个Allergy 模型和一个Prescription 模型。在应用程序本身中,我有可以转换为适当模型的视图模型,但为了简单起见,我们只说我将模型直接放在 Web API 控制器中。
所以是这样的:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
Allergy 模型我也有同样的情况:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
两个模型具有不同的属性,但处理方式完全相同 - 事实上,我还有大约 3 个其他模型,它们对每个 CRUD 操作的处理方式完全相同。我讨厌有 5 个不同的端点,它们基本上是复制和粘贴代码。
所以我的问题是这样的:
我可以制作一个通用控制器来处理所有这些模型吗?像MyCommonController<T> 这样的东西? (但当然有更好的名字!)在那种情况下,Web API 可以处理路由吗?这是个好主意吗?
【问题讨论】:
-
我认为您可以通过路由以不同的方式实现这一目标。我没试过,但会看到。
-
似乎可行。这是一个关于它的讨论:stackoverflow.com/questions/12077361/generic-webapi-controller
标签: c# generics asp.net-web-api