插件化編程之WebAPI統一返回模型( 二 )

/// 失敗/// /// 我們嘗試返回該類型結果
return ResultTo.Success(tokenDto, "登錄成功");通過swagger文檔我們看下返回效果
插件化編程之WebAPI統一返回模型

文章插圖
細心的你是不是發現了啥,我們的接口文檔他不認識我們返回類型的實體呀,還玩啥,別急我們可以再稍微擴展下,加個泛型的返回,看起來就完美了 。
/// <summary>/// 泛型結果模型/// </summary>/// <typeparam name="T"></typeparam>public interface IResultDto<T> : IResultDto{/// <summary>/// 常規數據/// </summary>new T Data { get; set; }}/// <summary>/// 泛型結果模型/// </summary>/// <typeparam name="T"></typeparam>public interface IResultDto<T> : IResultDto{/// <summary>/// 常規數據/// </summary>new T Data { get; set; }}【插件化編程之WebAPI統一返回模型】我們實現泛型接口如下,同樣在這里實現了成功和失敗賦值方法 。
/// <summary>/// 泛型類 返回模型/// </summary>/// <typeparam name="T"></typeparam>public class ResultDto<T> : ResultDto, IResultDto<T>{/// <summary>/// 常規數據/// </summary>public new T Data { get; set; }/// <summary>/// 成功/// </summary>/// <param name="data"></param>/// <param name="msg"></param>/// <returns></returns>public ResultDto<T> Success(T 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;}/// /// 異常/// /// /// <summary>/// 泛型類 返回模型/// </summary>/// <typeparam name="T"></typeparam>public class ResultDto<T> : ResultDto, IResultDto<T>{/// <summary>/// 常規數據/// </summary>public new T Data { get; set; }/// <summary>/// 成功/// </summary>/// <param name="data"></param>/// <param name="msg"></param>/// <returns></returns>public ResultDto<T> Success(T 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;}/// /// 異常/// /// 我們再次嘗試返回該類型結果
return ResultTo<TokenDto>.Success(tokenDto, "登錄成功");看看swagger文檔的顯示,正是我們需要的
插件化編程之WebAPI統一返回模型

文章插圖
根據經驗我們還要需要返回列表
/// <summary>/// 泛型結果模型集合/// </summary>public interface IResultListDto<T> : IResultDto{/// <summary>/// 常規數據/// </summary>new List<T> Data { get; set; }} /// <summary>/// 泛型結果模型集合/// </summary>public interface IResultListDto<T> : IResultDto{/// <summary>/// 常規數據/// </summary>new List<T> Data { get; set; }} /// <summary>/// 泛型類 返回模型/// </summary>/// <typeparam name="T"></typeparam>public class ResultListDto<T> : ResultDto, IResultListDto<T>{/// <summary>/// 常規數據/// </summary>public new List<T> Data { get; set; }/// <summary>/// 成功/// </summary>/// <param name="data"></param>/// <param name="msg"></param>/// <returns></returns>public ResultListDto<T> Success(List<T> 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;}///

推薦閱讀