package handler import ( "encoding/json" "net/http" "strconv" ) // parseJSON 解析请求体 JSON,失败返回错误。 func parseJSON(r *http.Request, v any) error { dec := json.NewDecoder(r.Body) return dec.Decode(v) } func atoi(s string, def int) int { if s == "" { return def } n, err := strconv.Atoi(s) if err != nil { return def } return n } func itoa(n int) string { return strconv.Itoa(n) } // errString 压缩错误信息长度便于前端展示。 func errString(err error) string { s := err.Error() const maxLen = 180 if len(s) > maxLen { return s[:maxLen] + "..." } return s }