在 WebAPI 中可以有 2 个具有相同名称和相同参数类型的方法
本文关键字:参数 方法 类型 WebAPI | 更新日期: 2023-09-27 18:33:02
WebApi 中是否有可能有两个名称相同的方法名称,相同的参数类型但不同的参数?
例如,一个是按年份 ID 获取产品
另一个是通过产品ID获取产品
我喜欢这个溃败:
Products?yearId=10
Products/15
我知道我可以有不同的名字,但我的老板喜欢有同样的名字,我想知道这是否可能。
这些是方法:
[HttpGet]
[Route("Products/{yearId}")]
public async Task<IEnumerable<Make>> GetProductsYearId(int yearId)
{
....
}
[HttpGet]
[Route("Products/{makeid}")]
public async Task<Make> GetProductById(int makeid)
{
.....
}
不确定 [路线] 应该是什么样子才能获得此最终结果。
正如Brendan Green所评论的那样,您需要定义两条单独的路由。否则,将无法确定您实际打算调用的方法:
[HttpGet]
[Route("Products/Year/{yearId}")]
public async Task<IEnumerable<Make>> GetProductsYearId(int yearId)
{
...
}
[HttpGet]
[Route("Products/Make/{makeid}")]
public async Task<Make> GetProductById(int makeid)
{
...
}