109 lines
2.1 KiB
C#
109 lines
2.1 KiB
C#
namespace AmtScanner.Api.Models;
|
|
|
|
/// <summary>
|
|
/// 统一 API 响应格式
|
|
/// </summary>
|
|
/// <typeparam name="T">数据类型</typeparam>
|
|
public class ApiResponse<T>
|
|
{
|
|
/// <summary>
|
|
/// 状态码
|
|
/// </summary>
|
|
public int Code { get; set; } = 200;
|
|
|
|
/// <summary>
|
|
/// 消息
|
|
/// </summary>
|
|
public string Msg { get; set; } = "success";
|
|
|
|
/// <summary>
|
|
/// 数据
|
|
/// </summary>
|
|
public T? Data { get; set; }
|
|
|
|
/// <summary>
|
|
/// 成功响应
|
|
/// </summary>
|
|
public static ApiResponse<T> Success(T? data, string msg = "success")
|
|
{
|
|
return new ApiResponse<T>
|
|
{
|
|
Code = 200,
|
|
Msg = msg,
|
|
Data = data
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 失败响应
|
|
/// </summary>
|
|
public static ApiResponse<T> Fail(int code, string msg)
|
|
{
|
|
return new ApiResponse<T>
|
|
{
|
|
Code = code,
|
|
Msg = msg,
|
|
Data = default
|
|
};
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 无数据的统一响应
|
|
/// </summary>
|
|
public class ApiResponse : ApiResponse<object>
|
|
{
|
|
/// <summary>
|
|
/// 成功响应(无数据)
|
|
/// </summary>
|
|
public static ApiResponse Ok(string msg = "success")
|
|
{
|
|
return new ApiResponse
|
|
{
|
|
Code = 200,
|
|
Msg = msg,
|
|
Data = null
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 失败响应
|
|
/// </summary>
|
|
public static new ApiResponse Fail(int code, string msg)
|
|
{
|
|
return new ApiResponse
|
|
{
|
|
Code = code,
|
|
Msg = msg,
|
|
Data = null
|
|
};
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页响应
|
|
/// </summary>
|
|
/// <typeparam name="T">数据项类型</typeparam>
|
|
public class PaginatedResponse<T>
|
|
{
|
|
/// <summary>
|
|
/// 数据记录
|
|
/// </summary>
|
|
public List<T> Records { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// 当前页码
|
|
/// </summary>
|
|
public int Current { get; set; }
|
|
|
|
/// <summary>
|
|
/// 每页大小
|
|
/// </summary>
|
|
public int Size { get; set; }
|
|
|
|
/// <summary>
|
|
/// 总记录数
|
|
/// </summary>
|
|
public int Total { get; set; }
|
|
}
|