Web API分页和控制器路由 - GetAll与页面编号和GetByID冲突

时间:2014-10-02 22:09:23

标签: asp.net asp.net-mvc asp.net-web-api routes

我正在创建一个需要具备以下功能的API :(仅限示例)

GetALLProducts(int pageNumber) - 带分页(页面大小为静态)

然后,我需要通过ID获取产品的其他途径

GetProduct(int productID)

这里的问题是这是相同的签名,因此应该通过id获取产品的路由也是获取所有产品但具有pagenumber的路径。执行的路由是GetProduct。

示例:www.url.com/api/Products/2 - 这是否是所有产品的第二页?或获得产品ID号2?

我考虑过将pageSize添加到签名中,但我想将其设为系统静态值。

您认为这里的最佳分辨率和清洁解决方案是什么?我看到了这个问题:WebApi Multiple actions were found with GetAll() and GetByIds(int[] ids)这也可以。想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

将pagenumber作为查询字符串传递。您应该将相应路由的呼叫分开 - 分别按约定/产品?page = 1和/ product / 2。您指定的路线将能够区分这两者。哦,我的偏好是在线程中建议归因路由。