我有一个网络Api有几种方法。我有路由问题。我有一种方法是按yearId
返回产品,另一种方法是按product id
返回产品。以下是我提出的两条路线:
/api/records/products?yearId=10
/api/records/products/15
这是我的两种方法:
[HttpGet]
[Route("getbyyearid")]
public async Task<Product> GetByYearid(int yearId)
{
.....
}
[HttpGet]
[Route("getbyid")]
public async Task<IEnumerable<Product>> GetByid(int productId)
{
......
}
我应该拥有什么路由映射,以便我可以使用以下两条路径访问我的Web API:
/api/records/products?yearId=10
/api/records/products/15
答案 0 :(得分:0)
您可以考虑使用Attribute Routing来自定义您希望如何使用路线。
以下是如何实现所需路线的示例:
[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) {
......
}
}