C# web api 自定义 ApiResult
1、结果枚举
namespace WebApi.Result { public class ResultCodeEnum { public int Code { get; } public string Message { get; } // 私有建構子,防止外部 new private ResultCodeEnum(int code, string message) { Code = code; Message = message; } // ================= 常见状态 ================= public static readonly ResultCodeEnum Success = new(200, "成功"); public static readonly ResultCodeEnum Fail = new(201, "失败"); public static readonly ResultCodeEnum ParamError = new(202, "参数不正确"); public static readonly ResultCodeEnum ServiceError = new(203, "服务异常"); public static readonly ResultCodeEnum DataError = new(204, "数据异常"); public static readonly ResultCodeEnum IllegalRequest = new(205, "非法请求"); public static readonly ResultCodeEnum RepeatSubmit = new(206, "重复提交"); public static readonly ResultCodeEnum DeleteError = new(207, "请先删除子集"); public static readonly ResultCodeEnum DeleteApartmentError = new(208, "请先删除房间"); public static readonly ResultCodeEnum DeleteRoomError = new(209, "空"); public static readonly ResultCodeEnum UploadExcelError = new(210, "上传表格失败"); // ================= 业务状态 ================= public static readonly ResultCodeEnum AdminAccountExistError = new(301, "账号已存在"); public static readonly ResultCodeEnum AdminCaptchaCodeError = new(302, "验证码错误"); public static readonly ResultCodeEnum AdminCaptchaCodeExpired = new(303, "验证码已过期"); public static readonly ResultCodeEnum AdminCaptchaCodeNotFound = new(304, "未输入验证码"); public static readonly ResultCodeEnum AdminLoginAuth = new(305, "未登陆"); public static readonly ResultCodeEnum AdminAccountNotExistError = new(306, "账号不存在"); public static readonly ResultCodeEnum AdminAccountError = new(307, "用户名或密码错误"); public static readonly ResultCodeEnum AdminAccountDisabledError = new(308, "该用户已被禁用"); public static readonly ResultCodeEnum AdminAccessForbidden = new(309, "无访问权限"); public static readonly ResultCodeEnum AppLoginAuth = new(501, "未登陆"); public static readonly ResultCodeEnum AppLoginPhoneEmpty = new(502, "手机号码为空"); public static readonly ResultCodeEnum AppLoginCodeEmpty = new(503, "验证码为空"); public static readonly ResultCodeEnum AppSendSmsTooOften = new(504, "验证法发送过于频繁"); public static readonly ResultCodeEnum AppLoginCodeExpired = new(505, "验证码已过期"); public static readonly ResultCodeEnum AppLoginCodeError = new(506, "验证码错误"); public static readonly ResultCodeEnum AppAccountDisabledError = new(507, "该用户已被禁用"); public static readonly ResultCodeEnum TokenExpired = new(601, "token过期"); public static readonly ResultCodeEnum TokenInvalid = new(602, "token非法"); } }
2、ApiResult
using SqlSugar; namespace WebApi.Result { public class ApiResult<T> { public bool Success { get; set; } public int Code { get; set; } public string Message { get; set; } = string.Empty; public T? Data { get; set; } // 成功 public static ApiResult<T> Ok(T data) { return new ApiResult<T> { Success = true, Code = ResultCodeEnum.Success.Code, Message = ResultCodeEnum.Success.Message, Data = data }; } // 失败 public static ApiResult<T> Fail(ResultCodeEnum codeEnum) { return new ApiResult<T> { Success = false, Code = codeEnum.Code, Message = codeEnum.Message, Data = default }; } } public class ApiResult : ApiResult<object> { // 成功 public static ApiResult Ok() { return new ApiResult { Success = true, Code = ResultCodeEnum.Success.Code, Message = ResultCodeEnum.Success.Message }; } // 失败 public static new ApiResult Fail(ResultCodeEnum codeEnum) { return new ApiResult { Success = false, Code = codeEnum.Code, Message = codeEnum.Message }; } // 失败 public static ApiResult Fail(int code, string message) { return new ApiResult { Success = false, Code = code, Message = message }; } } }
3、分页
namespace WebApi.Result { public class PagedResult<T> { // 当前页码 public int PageIndex { get; set; } // 每页尺寸 public int PageSize { get; set; } // 总数 public int TotalCount { get; set; } // 总页码 public int TotalPages => (int)Math.Ceiling(TotalCount / (double)PageSize); // 实际数据 public List<T> Items { get; set; } = new List<T>(); } }

浙公网安备 33010602011771号