This commit is contained in:
oneao committed 2025-11-04 22:39:02 +08:00
1 parent 69d03709ba
commit 44fb48ef6a
9 files changed
+625 -25

No files matched your search

@@ -1,6 +1,8 @@
package router
import (
"base-go-v2/internal/utils/mapx"
"base-go-v2/internal/utils/validate"
"encoding/json"
"sync"
@@ -72,6 +74,37 @@ func (c *Context) BindJSON(obj interface{}) error {
return json.Unmarshal(body, obj)
}
// BodyMap 将请求体解析为 mapx.M
func (c *Context) BodyMap() (mapx.M, error) {
body, err := c.Body() // 使用 BodyCache 读取请求体
if err != nil {
return nil, err
}
m := mapx.New()
if err := json.Unmarshal(body, &m); err != nil {
return nil, err
}
return m, nil
}
func (c *Context) GetBodyWithRequired(keys ...string) (mapx.M, error) {
// 解析请求体
req, err := c.BodyMap()
if err != nil {
return nil, err
}
// 校验必填字段
if err := validate.ValidateNotEmpty(req, keys...); err != nil {
return nil, err
}
// 返回整个请求体(包含所有字段)
return req, nil
}
// PostForm 获取表单参数
func (c *Context) PostForm(key string) string {
return string(c.RequestCtx.FormValue(key))