设置WebAPI的路由与返回数据类型信息
分类:
IT文章
•
2022-07-13 21:25:06
1、修改API路由
在 项目中有个App_Start文件夹中的WebApiConfig.cs重新设定访问路由
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//原来的默认路由
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }
//);
//修改后的路由
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
修改路由
在项目中Global.asax内引用WebApiConfig中设定好的路由
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
引用路由
创建控制项目中的Controllers文件夹中新建控制器
在新建好的控制器中定义方法
/// <summary>
/// 用户登陆
/// </summary>
/// <param name="postinfo"></param>
/// <returns></returns>
[HttpPost]
public HttpResponseMessage UserLogin([FromBody]string postinfo)
{
//方法内的代码
XXXXXXXXX
//返回json信息 下面会有定义返回形式,默认为XML方式返回
return ReturnHttpMessage.HttpMessage(JsonConvert.SerializeObject(user));
}
定义方法
PS:必须要在方法头部定义好[HttpPost]或者[HttpGet]、[HttpPut]、[HttpDELETE]的请求方式
设定好路由后访问地址改变为:http://xxx(域名)/api/XXX(控制器)/XXXX(定义的方法)
http://localhost:8035/api/Login/UserLogin
2、修改设定的返回信息方式
在控制器文件(Controllers)中添加个ReturnHttpMessage类
/// <summary>
/// 返回UTF8格式的json
/// </summary>
/// <param name="jsoninfo">json字符串</param>
/// <returns></returns>
public static HttpResponseMessage HttpMessage(string jsoninfo) {
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(jsoninfo, Encoding.UTF8, "text/json")
};
}
View Code