github.com/zxysilent/utils@v0.3.1/reply.go (about) 1 package utils 2 3 // Reply format 4 // 统一返回格式 5 type Reply struct { 6 Code int `json:"code"` 7 Msg string `json:"msg"` 8 Data interface{} `json:"data,omitempty"` 9 } 10 11 // page format Message 12 // 数据分页附加数据 13 type page struct { 14 Count int `json:"count"` 15 Items interface{} `json:"items"` 16 } 17 18 const ( 19 codeSucc int = 200 //正常 20 codeFail int = 300 //失败 21 codeErrIpt int = 310 //输入数据有误 22 codeErrOpt int = 320 //无数据返回 23 codeErrDeny int = 330 //没有权限 24 codeErrToken int = 340 //token错误 25 codeErrSvr int = 350 //服务端错误 26 codeExt int = 400 //其他约定,eg 更新token 27 ) 28 29 func newReply(code int, msg string, data ...interface{}) (int, Reply) { 30 if len(data) > 0 { 31 return 200, Reply{ 32 Code: code, 33 Msg: msg, 34 Data: data[0], 35 } 36 } 37 return 200, Reply{ 38 Code: code, 39 Msg: msg, 40 } 41 } 42 43 // Succ 返回一个成功标识的结果格式 44 func Succ(msg string, data ...interface{}) (int, Reply) { 45 return newReply(codeSucc, msg, data...) 46 } 47 48 // Fail 返回一个失败标识的结果格式 49 func Fail(msg string, data ...interface{}) (int, Reply) { 50 return newReply(codeFail, msg, data...) 51 } 52 53 // Page 返回一个带有分页数据的结果格式 54 func Page(msg string, items interface{}, count int) (int, Reply) { 55 return 200, Reply{ 56 Code: codeSucc, 57 Msg: msg, 58 Data: page{ 59 Items: items, 60 Count: count, 61 }, 62 } 63 } 64 65 // ErrIpt 返回一个输入错误的结果 66 func ErrIpt(msg string, data ...interface{}) (int, Reply) { 67 return newReply(codeErrIpt, msg, data...) 68 } 69 70 // ErrOpt 返回一个输出错误的结果 71 func ErrOpt(msg string, data ...interface{}) (int, Reply) { 72 return newReply(codeErrOpt, msg, data...) 73 } 74 75 // ErrDeny 返回一个没有权限的结果 76 func ErrDeny(msg string, data ...interface{}) (int, Reply) { 77 return newReply(codeErrDeny, msg, data...) 78 } 79 80 // ErrToken 返回一个验证失败的结果 81 func ErrToken(msg string, data ...interface{}) (int, Reply) { 82 return newReply(codeErrToken, msg, data...) 83 } 84 85 // ErrSvr 返回一个服务端错误的结果 86 func ErrSvr(msg string, data ...interface{}) (int, Reply) { 87 return newReply(codeErrSvr, msg, data...) 88 } 89 90 // Ext 返回一个其他约定的结果 91 func Ext(msg string, data ...interface{}) (int, Reply) { 92 return newReply(codeExt, msg, data...) 93 }