2 个 WebAPI 路由如何接受相同类型的参数
本文关键字:同类型 参数 何接受 WebAPI 路由 | 更新日期: 2023-09-27 18:32:54
我有一个具有多种方法的Web API。我的路由有问题。我有一种方法是按yearId
退货,另一种方法是按product id
退货。以下是我想出的 2 条路线:
/api/records/products?yearId=10
/api/records/products/15
这是我的 2 种方法:
[HttpGet]
[Route("getbyyearid")]
public async Task<Product> GetByYearid(int yearId)
{
.....
}
[HttpGet]
[Route("getbyid")]
public async Task<IEnumerable<Product>> GetByid(int productId)
{
......
}
我应该使用什么路由映射,以便我可以使用以下 2 个路由访问我的 Web API:
/api/records/products?yearId=10
/api/records/products/15
您可以考虑使用属性路由来自定义您希望如何使用路由。
下面是如何实现所需路由的示例:
[RoutePrefix("api/records")]
public class RecordsController: ApiController {
// GET api/records/products?yearid=10
[HttpGet]
[Route("products")]
public async Task<Product> GetByYearid(int yearId) {
.....
}
// GET api/records/products/15
[HttpGet]
[Route("products/{productId:int}")]
public async Task<IEnumerable<Product>> GetByid(int productId) {
......
}
}