【问题标题】:Resolve ambiguous route issue解决不明确的路线问题
【发布时间】:2021-04-09 13:45:22
【问题描述】:

我希望实现 2 条获取路由,定义为:

  1. GET /products - 获取所有产品。
  2. GET /products?name={name} - 查找与指定名称匹配的所有产品。 我使用的代码是:

[HttpGet] public IActionResult GetProducts()

[HttpGet] public IActionResult GetProductByName([FromQuery(Name = "name")] string name)

我能做到吗?

【问题讨论】:

  • 您可以将自己作为一种方法。当 name 为 null 或为空时返回所有产品
  • 或者把第二个改成/products/{name}
  • 我得到了这些方法的规范。我必须遵循它。
  • @user1672994 非常有趣的方法!从来没想过!有时答案很简单。我喜欢你的想法!

标签: c# .net .net-core get webapi


【解决方案1】:

为什么不把它们变成两个独立的端点,一个类似于[HttpGet("Products")],另一个端点是[HttpGet("Products/{name}]"

这样你就可以像这样调用你的 API .../Products 并取回您的所有产品或.../Products/Name 并获取特定的产品信息。您也可以将它们组合成一个端点[HttpGet("Products/{name}],然后在name 为空或为空时返回您的所有产品。

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多