【问题标题】:Web API Pagination and controller route - GetAll with pageNumber vs GetByID conflictWeb API 分页和控制器路由 - GetAll 与 pageNumber 与 GetByID 冲突
【发布时间】:2014-11-28 00:13:26
【问题描述】:

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

GetALLProducts(int pageNumber) - 分页(页面大小是静态的)

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

GetProduct(int productID)

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

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

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

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

谢谢!!

【问题讨论】:

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


    【解决方案1】:

    将页码作为查询字符串传递。您应该分别按照约定 /products?page=1 和 /product/2 将相应路由的呼叫分开。您指定的路线将能够区分两者。哦,我的偏好是按照线程中的建议进行属性路由。

    【讨论】:

    • 经过一番搜索,我觉得这也是最好的解决方案。测试和工作得很好。感谢您的回复。
    猜你喜欢
    • 2018-02-28
    • 2012-11-05
    • 2017-03-12
    • 2019-03-17
    • 2015-11-14
    • 1970-01-01
    • 2011-04-08
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多