考虑我需要三个Get方法ProductController。
1)的GetProducts()
2)GetProducts(int id)
3)GetProductsForDiscount()
第三种方法我无法访问它。它根本没有显示出来。
答案 0 :(得分:0)
RESTful API的最佳实践是使基于名词的URL具有由标准HTTP谓词(GET,POST等)定义的操作.URL定义资源(在本例中为Products),动词定义操作(GET) =读)。参数允许您控制返回给调用者的内容。
在ASP.NET WebApi中实现此目的的常用方法是通过属性路由。您可以定义ASP运行时应如何根据查询字符串参数选择控制器操作。
例如:
public class ProductController : ApiController
{
public IHttpActionResult Get()
{
/*
* Code to get products here.
*/
return Ok<IEnumerable<Product>>(products);
}
[Route("api/product/{id:int}")]
public IHttpActionResult Get(int id)
{
/*
* Code to get product here.
*/
return Ok<Product>(product);
}
[Route("api/product/{forDiscount:bool}")]
public IHttpActionResult Get(bool forDiscount)
{
/*
* Code to get discounted products here.
*/
return Ok<IEnumerable<Product>>(products);
}
}
调用此控制器时,将按如下方式选择操作: