using Microsoft.AspNetCore.Mvc; using System.Text.Json.Serialization; namespace dy.net.model.dto { public class DouyinApiResponse { /// /// 响应状态码(自定义业务码,非HTTP状态码) /// [JsonPropertyName("code")] public int Code { get; set; } /// /// 响应数据 /// [JsonPropertyName("data")] public T Data { get; set; } /// /// 响应消息(成功/失败描述) /// [JsonPropertyName("msg")] public string Msg { get; set; } [JsonPropertyName("message")] public string Message { get; set; } [JsonPropertyName("error")] public string Error { get; set; } /// /// 响应时间戳(UTC时间) /// [JsonPropertyName("timestamp")] public DateTime Timestamp { get; set; } = DateTime.UtcNow; } /// /// 响应状态码常量 /// public static class ResponseCode { public const int Success = 0; // 操作成功 public const int ServerError = -1; // 服务器错误 } /// /// 直接返回 IActionResult 的API响应工具类 /// 无需控制器手动拼接 Ok()/BadRequest(),一步返回标准化响应 /// public static class ApiResult { #region 成功响应 /// /// 成功响应(带数据) /// /// 数据类型 /// 响应数据 /// 成功消息(默认:操作成功) /// IActionResult(HTTP 200) public static IActionResult Success(T data, string message = "操作成功") { var response = new DouyinApiResponse { Code = ResponseCode.Success, Data = data, Message = message, Error = message, Msg = message, }; return new OkObjectResult(response); // HTTP 200 } /// /// /// /// /// /// /// /// public static IActionResult SuccOrFail(int code,T t,string message = "") { if (code == ResponseCode.Success) { return Success(t, message); } else { return Fail(message); } } /// /// /// /// /// /// /// /// public static IActionResult SuccOrFail(bool result, T t, string message = "") { if (result) { return Success(t, message); } else { return Fail(message); } } /// /// 成功响应(无数据) /// /// 成功消息(默认:操作成功) /// IActionResult(HTTP 200) public static IActionResult Success(string message = "操作成功") { return Success(null, message); } #endregion #region 失败响应 /// /// 失败响应 /// /// 数据类型 /// 错误消息 /// 附加数据 /// IActionResult public static IActionResult Fail(string message="请求失败", int businessCode = ResponseCode.ServerError, T data = default) { var response = new DouyinApiResponse { Code = businessCode, Data = data, Message = message, Error = message, Msg = message, }; return new OkObjectResult(response); } /// /// 失败响应(无附加数据) /// /// 错误消息 /// 自定义业务码 /// IActionResult public static IActionResult Fail(string message, int businessCode = ResponseCode.ServerError) { return Fail(message, businessCode); } /// /// 失败响应(无附加数据) /// /// 错误消息 /// IActionResult public static IActionResult Fail(string message="请求失败") { return Fail(message, ResponseCode.ServerError); } #endregion } }