Mico.Demo/Microservice.Common/ApiResponseHelper.cs

132 lines
4.8 KiB
C#

using System.Net;
namespace Microservice.Common
{
/// <summary>
/// API 响应工具类
/// </summary>
public static class ApiResponseHelper
{
/// <summary>
/// 生成成功响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="data">数据负载</param>
/// <param name="message">响应消息</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> Success<T>(T data, string message = "Success")
{
return new ApiResponse<T>(
statusCode: (int)HttpStatusCode.OK,
message: message,
data: data
);
}
/// <summary>
/// 生成成功响应(无数据)
/// </summary>
/// <param name="message">响应消息</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse Success(string message = "Success")
{
return new ApiResponse(
statusCode: (int)HttpStatusCode.OK,
message: message,
data: null
);
}
/// <summary>
/// 生成失败响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="statusCode">状态码</param>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> Error<T>(HttpStatusCode statusCode, string message, T data = default)
{
return new ApiResponse<T>(
statusCode: (int)statusCode,
message: message,
data: data
);
}
/// <summary>
/// 生成失败响应(无数据)
/// </summary>
/// <param name="statusCode">状态码</param>
/// <param name="message">响应消息</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse Error(HttpStatusCode statusCode, string message)
{
return new ApiResponse(
statusCode: (int)statusCode,
message: message,
data: null
);
}
/// <summary>
/// 生成 400 Bad Request 响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> BadRequest<T>(string message = "Bad Request", T data = default)
{
return Error(HttpStatusCode.BadRequest, message, data);
}
/// <summary>
/// 生成 401 Unauthorized 响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> Unauthorized<T>(string message = "Unauthorized", T data = default)
{
return Error(HttpStatusCode.Unauthorized, message, data);
}
/// <summary>
/// 生成 403 Forbidden 响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> Forbidden<T>(string message = "Forbidden", T data = default)
{
return Error(HttpStatusCode.Forbidden, message, data);
}
/// <summary>
/// 生成 404 Not Found 响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> NotFound<T>(string message = "Not Found", T data = default)
{
return Error(HttpStatusCode.NotFound, message, data);
}
/// <summary>
/// 生成 500 Internal Server Error 响应
/// </summary>
/// <typeparam name="T">响应数据类型</typeparam>
/// <param name="message">响应消息</param>
/// <param name="data">数据负载</param>
/// <returns>标准化 API 响应</returns>
public static ApiResponse<T> InternalServerError<T>(string message = "Internal Server Error", T data = default)
{
return Error(HttpStatusCode.InternalServerError, message, data);
}
}
}