【发布时间】:2018-02-17 09:22:28
【问题描述】:
我需要能够有相同的路线来获得两种不同的输出。
/api/v1/items?ids=1,2,3
应该检索包含这三个条目的项目列表,但是
/api/v1/items?from=142523&limit=4
应检索光标分页响应,其中from 将是项目的ID。
我知道过去可以根据查询字符串创建路由约束,但根据此处发布的答案已将其删除: Query parameter route constraints
解决这个问题的最佳方法是什么?属性路由是不行的,因为我们不想在应用程序中有items/{list-of-ids} 路由。我可以使用可选参数将这些方法合并为一个,但是 API 输出在自动生成的文档中不一致(分页与非分页响应)。是否可以使用自定义路由约束来实现我想要的?
【问题讨论】:
-
我不会说你得到两种不同的输出,而是你得到相同的输出,只是更大集合的不同表示。还要考虑您可能希望对未过滤的请求进行限制,这样您就不会返回 all 的结果。
标签: c# .net routing asp.net-web-api2