| package response | |
| import "github.com/gin-gonic/gin" | |
| type successEnvelope struct { | |
| Data any `json:"data"` | |
| } | |
| type errorEnvelope struct { | |
| Error errorBody `json:"error"` | |
| } | |
| type errorBody struct { | |
| Code string `json:"code"` | |
| Message string `json:"message"` | |
| RequestID string `json:"requestId,omitempty"` | |
| } | |
| // Success 返回 Admin API 统一成功包裹。 | |
| func Success(c *gin.Context, status int, data any) { | |
| c.JSON(status, successEnvelope{Data: data}) | |
| } | |
| // Error 返回 Admin API 稳定错误码和请求 ID。 | |
| func Error(c *gin.Context, status int, code, message string) { | |
| requestID, _ := c.Get("requestId") | |
| c.AbortWithStatusJSON(status, errorEnvelope{Error: errorBody{Code: code, Message: message, RequestID: stringValue(requestID)}}) | |
| } | |
| func stringValue(value any) string { | |
| result, _ := value.(string) | |
| return result | |
| } | |