using System.ComponentModel.DataAnnotations;
namespace KH.WMS.Core.Api.Responses;
///
/// API 统一响应格式
///
public class ApiResponse
{
///
/// 响应码
///
public string Code { get; set; } = "200";
///
/// 响应消息
///
public string Message { get; set; } = "操作成功";
///
/// 时间戳
///
public long Timestamp { get; set; } = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
///
/// 响应数据
///
public object? Data { get; set; }
///
/// 请求跟踪ID
///
public string? TraceId { get; set; }
///
/// 创建成功响应
///
public static ApiResponse Ok(object? data = null, string message = "操作成功")
{
return new ApiResponse
{
Code = "200",
Message = message,
Data = data
};
}
///
/// 创建失败响应
///
public static ApiResponse Fail(string code, string message)
{
return new ApiResponse
{
Code = code,
Message = message
};
}
}
///
/// API 泛型响应格式
///
public class ApiResponse : ApiResponse
{
///
/// 响应数据
///
public new T? Data { get; set; }
///
/// 创建成功响应
///
public static ApiResponse Ok(T? data, string message = "操作成功")
{
return new ApiResponse
{
Code = "200",
Message = message,
Data = data
};
}
///
/// 创建失败响应
///
public static new ApiResponse Fail(string code, string message)
{
return new ApiResponse
{
Code = code,
Message = message
};
}
}