Web API 2 路由
Web API 2 Routing
我是 API 路由的新手,正在努力解决这个问题。
假设我们有一个糖果棒列表。
我想做以下事情:
ListAllCandyBars --- api/Candy
ListCandyBar via ID --- api/Candy/10
ListAllChocBars --- api/Candy/Choc
因此我们有 3 个 GETS
默认获取
凭身份证领取
动作获取
您希望如何设置路由和 Class。我似乎只能通过 ID 或 ListAllCandyBars 和 ListAllChocBars 获得 ListAllCandyBars 和 ListCandyBar。
这是我当前的路线:
config.Routes.MapHttpRoute(
name: "WithActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
);
使用类似这样的东西:
public class DefaultController : ApiController
{
// GET: api/Default
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: api/Default/5
public string Get(int id)
{
return "value";
}
// GET: api/Default/ListSub
public string ListSub(int id)
{
return "value";
}
// POST: api/Default
public void Post([FromBody]string value)
{
}
// PUT: api/Default/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/Default/5
public void Delete(int id)
{
}
}
期待收到您的来信并解决这个小问题。 PS 这可能是我对控制器的理解。我应该为 ListAllChocBars 使用不同的控制器吗?
此致
詹姆斯
我太复杂了,选择路由属性真的很管用。
我是 API 路由的新手,正在努力解决这个问题。
假设我们有一个糖果棒列表。
我想做以下事情:
ListAllCandyBars --- api/Candy
ListCandyBar via ID --- api/Candy/10
ListAllChocBars --- api/Candy/Choc
因此我们有 3 个 GETS
默认获取 凭身份证领取 动作获取
您希望如何设置路由和 Class。我似乎只能通过 ID 或 ListAllCandyBars 和 ListAllChocBars 获得 ListAllCandyBars 和 ListCandyBar。
这是我当前的路线:
config.Routes.MapHttpRoute(
name: "WithActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
);
使用类似这样的东西:
public class DefaultController : ApiController
{
// GET: api/Default
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: api/Default/5
public string Get(int id)
{
return "value";
}
// GET: api/Default/ListSub
public string ListSub(int id)
{
return "value";
}
// POST: api/Default
public void Post([FromBody]string value)
{
}
// PUT: api/Default/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/Default/5
public void Delete(int id)
{
}
}
期待收到您的来信并解决这个小问题。 PS 这可能是我对控制器的理解。我应该为 ListAllChocBars 使用不同的控制器吗?
此致
詹姆斯
我太复杂了,选择路由属性真的很管用。