通用的API返回类

 

复制代码
public enum ApiResponseStatus
{
    Success,
    Error
}

public enum ApiErrorCode
{
    InvalidRequest = 1000,
    Forbidden = 2000,
    NotFound = 3000,
    InternalServerError = 4000
}

public class ApiResponse<T>
{
    public ApiResponseStatus Status { get; set; }
    public string Message { get; set; }
    public T Data { get; set; }
    public ApiErrorCode ErrorCode { get; set; }

    public ApiResponse()
    {
        Status = ApiResponseStatus.Success;
        Message = "Success";
    }

    public ApiResponse(T data)
    {
        Status = ApiResponseStatus.Success;
        Message = "Success";
        Data = data;
    }

    public ApiResponse(string message, ApiErrorCode errorCode = ApiErrorCode.InternalServerError)
    {
        Status = ApiResponseStatus.Error;
        Message = message;
        ErrorCode = errorCode;
    }

    public void SetError(string message, ApiErrorCode errorCode = ApiErrorCode.InternalServerError)
    {
        Status = ApiResponseStatus.Error;
        Message = message;
        ErrorCode = errorCode;
    }

    public void SetData(T data)
    {
        Status = ApiResponseStatus.Success;
        Message = "Success";
        Data = data;
    }

    public static ApiResponse<T> CreateError(string message, ApiErrorCode errorCode = ApiErrorCode.InternalServerError)
    {
        return new ApiResponse<T>
        {
            Status = ApiResponseStatus.Error,
            Message = message,
            ErrorCode = errorCode
        };
    }

    public static ApiResponse<T> CreateSuccess(T data)
    {
        return new ApiResponse<T>
        {
            Status = ApiResponseStatus.Success,
            Message = "Success",
            Data = data
        };
    }
}
复制代码

 

posted @   ProZkb  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
历史上的今天:
2020-12-07 C# TryGetValue
2018-12-07 部署
点击右上角即可分享
微信分享提示