cloudreve中的通用返回对象的处理

cloudreve中的通用返回对象的处理

包名: serializer

基础化的响应结构体

// Response 基础序列化器  
type Response struct {  
    Code  int         `json:"code"`  
    Data  interface{} `json:"data,omitempty"`  
    Msg   string      `json:"msg"`  
    Error string      `json:"error,omitempty"`  
}
// Err 通用错误处理  
func Err(errCode int, msg string, err error) Response {  
    // 底层错误是AppError,则尝试从AppError中获取详细信息  
    var appError AppError  
    if errors.As(err, &appError) {  
       errCode = appError.Code  
       err = appError.RawError  
       msg = appError.Msg  
    }  
  
    res := Response{  
       Code: errCode,  
       Msg:  msg,  
    }  
    // 生产环境隐藏底层报错  
    if err != nil && gin.Mode() != gin.ReleaseMode {  
       res.Error = err.Error()  
    }  
    return res  
}
posted @ 2024-02-04 21:09  潜行1  阅读(20)  评论(0)    收藏  举报