通用Web API控制器
我正在使用Web API v2,我有一些模型,我需要做CRUD操作。 例如,我有一个Allergy
模型和一个Prescription
模型。 在应用程序本身中,我有可以转换为适当模型的视图模型,但为了简单起见,我只想说我在Web API控制器中直接使用模型。
所以这样的事情:
public class PrescriptionsController { public HttpResponseMessage Put(Prescription model) { // saved to the DB } ... (other CRUD operations) }
我对Allergy
模型也有同样的Allergy
:
public class AllergiesController { public HttpResponseMessage Put(Allergy model) { // saved to the DB } ... (other CRUD operations) }
两种型号都有不同的属性,但处理方式完全相同 – 实际上我有大约3种其他型号,每种型号的处理方式完全相同。 我讨厌有5个不同的端点,基本上是复制和粘贴代码。
所以我的问题是:
我可以制作一个通用控制器来处理所有这些模型吗? 像MyCommonController
这样的东西? (但当然有更好的名称!)Web API可以处理该场景中的路由吗? 这是一个好主意吗?
最后我没有尝试通用控制器。 似乎有可能通过路由跳过一些箍。
然而,路由修改以使其工作的事实是如此复杂,这种做法否定了我将获得的好处。 我想保持简单。 所以我只是创建了一个通用基类:
class MyBaseController : ApiController { public TModel Get(int id) { ... } }
并且每种类型都inheritance自它:
class PrescriptionsController : MyBaseController { }
这就像魅力一样,不必乱用路由或任何东西。 它清楚地表明正在发生的事情并且非常易于维护。
- 如何使用ASP.Net Web Api 2进行部分响应
- 我必须向我的Web API REST方法添加显式线程吗?
- error handling(将ex.Message发送到客户端)
- 凭据标志为“true”,但是“Access-Control-Allow-Credentials”
- WebAPI OData操作示例 – CheckOut和CheckOutMany操作之间的区别
- 将身份validation添加到ASP.NET WebApi 2.2
- 从MVC的DependencyResolver过渡到AutofacWebApiDependencyResolver – 哪里是.Current?
- 在下载时将用户特定数据嵌入到authenticode签名安装程序中
- MVC4 webapi中的反序列化/模型绑定不适用于数组