Web API默认的路由为:
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
此配置下会根据请求方式自动匹配controller内的方法
// GET: api/Default1
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: api/Default1/5
public string Get(int id)
{
return "value";
}
// POST: api/Default1
public void Post([FromBody]string value)
{
}
// PUT: api/Default1/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/Default1/5
public void Delete(int id)
{
}
如果想自定义方法名,需修改路由
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "Api",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
方法名需要配置相应的属性([HttpPost]、[HttpGet]…)。对于post方法需在参数前加‘FromBody’,如果请求的参数设置的是json类型,则在需将参数类型改为‘object’,不然接收到post的实体。
[HttpPost]
public string setName([FromBody]object json)
{
return "set成功:" + json;
}