u
This commit is contained in:
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))
|
||||
|
||||
Reference in new issue
Block a user