ASP.NET Web Api重复动词

时间:2015-11-20 16:25:41

标签: rest http asp.net-web-api

我创建了一个名为Filter的web api(REST),它有多个get方法,例如

GetCompany GetCustomers的 GetOrders

这是正确的做法还是应该为不同的实体设置不同的web api?我是否应该在同一个WEB API中复制相同的http动词(GET)。

其他动词(POST或PUT)怎么样?

在另一个服务中,我们有一个案例需要更新特定字段,另一个案例我们可以更新除记录中特定字段之外的任何内容。是否应该为两种情况使用一种方法(POST或PUT),还是可以使用两种不同的方法?

我从angularjs $ http服务调用这些方法。

1 个答案:

答案 0 :(得分:4)

每个资源(实体)都应该有一个不同的控制器

然后在Get上使用CustomersController方法,例如

您的网址将是

/公司
/客户
/订单

等...

然后,您的HTTP谓词将路由到这些控制器中的相应方法。因此,对GET的{​​{1}}请求将被路由到该控制器上的/Customers方法

或者,如果您真的坚持使用一个控制器,则可以使用属性路由以及动词属性

这样的东西
Get()

但这会变得非常大,非常快,而且我通常不建议像这样做。

每个资源一个控制器更清洁。