// Package resp 提供统一的 JSON 响应格式:{code, msg, data} // code=0 表示成功,非 0 表示业务失败 package resp import ( "net/http" "github.com/gin-gonic/gin" ) // OK 成功响应,data 为业务数据 func OK(c *gin.Context, data any) { c.JSON(http.StatusOK, gin.H{"code": 0, "msg": "ok", "data": data}) } // Fail 业务失败响应(HTTP 仍为 200,靠 code 区分) func Fail(c *gin.Context, msg string) { c.JSON(http.StatusOK, gin.H{"code": 1, "msg": msg, "data": nil}) } // Unauthorized 未登录/凭证失效响应(HTTP 401,前端据此跳转登录页) func Unauthorized(c *gin.Context, msg string) { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"code": 401, "msg": msg, "data": nil}) } // Forbidden 无权限响应(HTTP 403) func Forbidden(c *gin.Context, msg string) { c.AbortWithStatusJSON(http.StatusForbidden, gin.H{"code": 403, "msg": msg, "data": nil}) }