一、默认路由
路由配置:
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
控制器:
public class TestController : ApiController
{
[HttpGet]
public string GetString()
{
return "TESTAPI";
}
[HttpGet]
public string GetString(string str)
{
return str + "TESTAPI";
}
}
无参数
单一的参数(值类型或string)
传入参数为类时
[HttpGet]
public DeviceStopModel GetString([FromUri] DeviceStopModel model)
{
return model;
}
- 传入参数的参数名需要和url中的键名称一致
- 当同一控制器中同一请求方式存在多个方法参数个数相同,参数名称相同且使用默认路径时会报匹配失败的错误
匹配失败的情况(可使用增加action和自定义路由(Route)特性的方式解决)
[HttpGet]
public string GetString2(string id)
{
return id + "TESTAPI";
}
[HttpGet]
public string GetString2(int id)
{
return id + "TESTAPI";
}
二、POST
自定义路由
指定路由前缀
启用自定义路由
// 启用特性路由
config.MapHttpAttributeRoutes();