詳解ASP.NET Core WebApi 返回統(tǒng)一格式參數(shù)
業(yè)務(wù)場(chǎng)景:
業(yè)務(wù)需求要求,需要對(duì) WebApi 接口服務(wù)統(tǒng)一返回參數(shù),也就是把實(shí)際的結(jié)果用一定的格式包裹起來(lái),比如下面格式:
{ "response":{ "code":200, "msg":"Remote service error", "result":"" } }
具體實(shí)現(xiàn):
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; public class WebApiResultMiddleware : ActionFilterAttribute { public override void OnResultExecuting(ResultExecutingContext context) { //根據(jù)實(shí)際需求進(jìn)行具體實(shí)現(xiàn) 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
添加對(duì)應(yīng)配置:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(options => { options.Filters.Add(typeof(WebApiResultMiddleware)); options.RespectBrowserAcceptHeader = true; }); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET Core WebApi版本控制的實(shí)現(xiàn)
- 詳解如何在ASP.NET Core Web API中以三種方式返回?cái)?shù)據(jù)
- asp.net core webapi文件上傳功能的實(shí)現(xiàn)
- 詳解ASP.NET Core Web Api之JWT刷新Token
- 在IIS上部署ASP.NET Core Web API的方法步驟
- ASP.NET Core奇淫技巧之動(dòng)態(tài)WebApi的實(shí)現(xiàn)
- ASP.NET Core WebAPI實(shí)現(xiàn)本地化(單資源文件)
- Asp.Net Core使用swagger生成api文檔的完整步驟
- ASP.NET Core實(shí)現(xiàn)自定義WebApi模型驗(yàn)證詳解
- Asp.Net Core 調(diào)用第三方Open API查詢物流數(shù)據(jù)的示例
相關(guān)文章
如何使用ASP.NET MiniAPI 調(diào)試未匹配請(qǐng)求路徑
ASP.NET MiniAPI是一個(gè)輕量級(jí)的Web API框架,它可以讓我們快速地構(gòu)建和部署RESTful服務(wù),本文給大家介紹使用ASP.NET MiniAPI 調(diào)試未匹配請(qǐng)求路徑的方法,感興趣的朋友一起看看吧2024-01-01asp.net中for和do循環(huán)語(yǔ)句用法分享
文章介紹了兩個(gè)實(shí)例一個(gè)是FOR循環(huán)創(chuàng)建一個(gè)Mandelbrot圖像,循環(huán)結(jié)構(gòu)之DO語(yǔ)句,根據(jù)布爾值的測(cè)試結(jié)果,執(zhí)行相應(yīng)代碼,有需要的朋友可參考一下2012-04-04NLog路由規(guī)則和上下文信息知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給各位整理的是關(guān)于NLog路由規(guī)則和上下文信息的相關(guān)文章,有需要的朋友們學(xué)習(xí)下。2019-10-10云服務(wù)器下搭建ASP.NET Core環(huán)境
本文給大家分享的是在云服務(wù)器上搭建ASP.NET Core環(huán)境以及成功運(yùn)行官網(wǎng)DEMO的教程,十分的細(xì)致全面,有需要的小伙伴可以參考下。2016-07-07asp.net 學(xué)習(xí)之路 項(xiàng)目整體框架簡(jiǎn)單的搭建
最近剛學(xué)了些關(guān)于asp.net mvc方面的知識(shí),于是了要拿個(gè)小項(xiàng)目來(lái)練練手,提高下自己的code能力跟思維能力2012-12-12