package middleware import ( "bytes" "encoding/json" "io" "net/http" "ulink-admin/frame" "ulink-admin/utils" ) const FAST_BODY_COLNUM = "fast_body_colnum" // 请求处理 func Request() func(c *frame.Context) { return func(c *frame.Context) { if c.Request.Method == http.MethodPut || c.Request.Method == http.MethodPost { var bodyBytes []byte if c.Request.Body != nil { bodyBytes, _ = io.ReadAll(c.Request.Body) } var body map[string]interface{} json.Unmarshal(bodyBytes, &body) keys := make([]string, len(body)) i := 0 for k, _ := range body { keys[i] = utils.Camel2Case(k) i++ } c.Set(FAST_BODY_COLNUM, keys) c.Request.Body = io.NopCloser(bytes.NewBuffer(bodyBytes)) } // 处理请求 c.Next() } }