Asp.Net Core 统一Api返回值
Asp.Net Core 统一Api返回值
写在开头
在我们在前端调用后端接口时,常常会遇到返回数据不一致的问题,又或者当我们请求接口的时候我们常常需要判断结果,以调用不同的Toast
或者Snackbar
反馈给操作者,我们需要对接口返回数据进行统一的操作。
代码
首先我们需要一个返回结果类,他应当接收所有类型数据,即泛型
public record ResponseResult<T>
{
public bool status { get; set; }
public string? msg { get; set; }
public T data { get; set; }
public static ResponseResult<T> Result(bool _status, T _data, string? _msg = null)
{
return new ResponseResult<T> { status = _status, data = _data, msg = _msg };
}
}
那么现在在api控制器里可能是这样子的:
return ResponseResult<string>.Result(true, "","");
很显然,他看起来太长了,我们使用极为不便。
我们让他简化一点,通过继承ControllerBase
就像下面这样:
public class BaseController : ControllerBase
{
protected ResponseResult<T> Result<T>(bool status, T data, string? msg = null)
{
return ResponseResult<T>.Result(status, data, msg);
}
protected ResponseResult<T> ResultOk<T>(T data)
{
return ResponseResult<T>.Result(true, data);
}
protected ResponseResult<T> ResultFail<T>(string msg)
{
return ResponseResult<T>.Result(false, default, msg);
}
}
在这里我们添加了Ok
和Fail
并保留了result
以下是相关使用场景:
return ResultOk(data);
return ResultFail(error);
return Result(error=="",data,error);
json
结果展示:
{
"status": true,
"msg": null,
"data": [
{
"date": "2024-07-22",
"temperatureC": -2,
"temperatureF": 29,
"summary": "Warm"
},
{
"date": "2024-07-23",
"temperatureC": -19,
"temperatureF": -2,
"summary": "Mild"
},
]
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 上周热点回顾(2.17-2.23)