失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ASP.NET Core WebApi 返回统一格式参数

ASP.NET Core WebApi 返回统一格式参数

时间:2018-08-02 01:09:21

相关推荐

ASP.NET Core WebApi 返回统一格式参数

业务场景:

业务需求要求,需要对 WebApi 接口服务统一返回参数,也就是把实际的结果用一定的格式包裹起来,比如下面格式:

{"response":{"code":200,"msg":"Remote service error","result":""}}

具体实现:

using Microsoft.AspNetCore.Mvc;using Microsoft.AspNetCore.Mvc.Filters;public class WebApiResultMiddleware : ActionFilterAttribute{public override void OnResultExecuting(ResultExecutingContext context){//根据实际需求进行具体实现if (context.Result is ObjectResult){var objectResult = context.Result as ObjectResult;if (objectResult.Value == null){context.Result = new ObjectResult(new { code = 404, sub_msg = "未找到资源", msg = "" });}else{context.Result = new ObjectResult(new { code = 200, msg = "", result = objectResult.Value });}}else if (context.Result is EmptyResult){context.Result = new ObjectResult(new { code = 404, sub_msg = "未找到资源", msg = "" });}else if (context.Result is ContentResult){context.Result = new ObjectResult(new { code = 200, msg = "", result= (context.Result as ContentResult).Content });}else if (context.Result is StatusCodeResult){context.Result = new ObjectResult(new { code = (context.Result as StatusCodeResult).StatusCode, sub_msg = "", msg = "" });}}}

Startup添加对应配置:

public void ConfigureServices(IServiceCollection services){services.AddMvc(options =>{options.Filters.Add(typeof(WebApiResultMiddleware));options.RespectBrowserAcceptHeader = true;});}

如果觉得《ASP.NET Core WebApi 返回统一格式参数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。