解决不明确的路由问题

问题描述

我希望实现 2 个 get 路由,定义为:

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

[HttpGet] public IActionResult GetProducts()

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

我能做到吗?

解决方法

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

这样你就可以像这样调用你的 API .../Products 并取回您的所有产品或 .../Products/Name 并获取特定产品信息。您还可以将这些组合到一个端点 [HttpGet("Products/{name}] 中,然后如果 name 为 null 或为空,则返回所有产品。