业务场景:
业务需求要求,需要对 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; }); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持站长技术。
大家好我是冰河~~ 最近有很多小伙伴让我更新一些Zookeeper的文章正好也趁着清明...
运用bootstrap,jquery和ajax显示一些数据,附加删除功能并且点击能弹出模态框详...
什么是 HTML? HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hy...
给某个option 添加 selected = selected 属性就是默认选项 如: 复制代码 代码如...
预览图(比较简单粗糙) 聚合数据全国天气预报接口: https://www.juhe.cn/docs/...
正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,...
Redis是什么 redis是一个基于内存的高性能的 key-value 数据库。 Redis与Memcach...
前言 本次咱们来操作一下如何在Pycharm上,使用远程服务器上的Python环境。 为什...
对用户获取短信验证码的手机号、ip、和浏览器(使用唯一标识)进行限制。本文介...
公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, ...