WebApi返回数据我们一般包裹在一个公共的模型下面的 , 而不是直接返回最终数据,在返回参数中,显示出当前请求的时间戳,是否请求成功 , 如果错误那么错误的消息是什么,状态码(根据业务定义的值)等等 。我们常规的返回值常需要如下字段,为此我们可以先定义IResultDto 接口
/// <summary>/// 结果模型/// </summary>public interface IResultDto{/// <summary>/// 成功/// </summary>bool Successful { get; set; }/// <summary>/// 返回标识码/// </summary>int Code { get; set; }/// <summary>/// 操作码(用于幂等性验证,每次请求都会返回一个新的,以便用户下次更新使用)/// </summary>string OpCode { get; set; }/// <summary>/// 消息/// </summary>string Msg { get; set; }/// <summary>/// 常规数据/// </summary>dynamic Data { get; set; }}/// <summary>/// 结果模型/// </summary>public interface IResultDto{/// <summary>/// 成功/// </summary>bool Successful { get; set; }/// <summary>/// 返回标识码/// </summary>int Code { get; set; }/// <summary>/// 操作码(用于幂等性验证 , 每次请求都会返回一个新的,以便用户下次更新使用)/// </summary>string OpCode { get; set; }/// <summary>/// 消息/// </summary>string Msg { get; set; }/// <summary>/// 常规数据/// </summary>dynamic Data { get; set; }}对应的还接口的实现如下,为了更好的独立性,在这里实现了成功和失败赋值方法 。
/// <summary>/// 返回模型/// </summary>public class ResultDto : IResultDto{/// <summary>/// 返回标识码/// </summary>public int Code { get; set; }/// <summary>/// 成功/// </summary>[JsonIgnore]public bool Successful { get; set; }/// <summary>/// 消息/// </summary>public string Msg { get; set; }/// <summary>/// 操作码(用于幂等性验证,每次请求都会返回一个新的,以便用户下次更新使用)/// </summary>public string OpCode { get; set; }/// <summary>/// 常规数据/// </summary>public dynamic Data { get; set; }/// <summary>/// 成功/// </summary>/// <returns></returns>public ResultDto Success(string msg = "success"){this.Code = (int)EnumCode.Succeed;this.Successful = true;this.Msg = msg;return this;}/// <summary>/// 成功/// </summary>/// <param name="data"></param>/// <param name="msg"></param>/// <returns></returns>public ResultDto Success(dynamic data = https://www.huyubaike.com/biancheng/default, string msg ="success"){this.Code = (int)EnumCode.Succeed;this.Successful = true;this.Data = https://www.huyubaike.com/biancheng/data;this.Msg = msg;return this;}///
推荐阅读
- kubernetes Tcp流量可视化
- P3834 【模板】可持久化线段树 2
- SpringBoot实战派读书笔记---响应式编程
- AVX图像算法优化系列一: 初步接触AVX。
- 可持久化数组 P3919 【模板】可持久化线段树 1
- P3402 可持久化并查集
- VideoPipe可视化视频结构化框架开源了!
- Playwright+Java 微软出品自动化神器Playwright系列(四)之浏览器操作
- 【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能
- JavaScript之无题之让人烦躁的模块化