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"
},
]
}
标签:status,Core,Asp,return,ResponseResult,Api,Result,msg,data
From: https://www.cnblogs.com/ssz0312/p/18314607