升级body解析, 适配各个类型请求Body #12

Merged
zhangdeman merged 4 commits from feature/upgrade_request_parse into master 2025-05-04 15:34:02 +08:00
Showing only changes of commit ecaf448100 - Show all commits

View File

@ -59,10 +59,24 @@ func Execute(ctx *gin.Context, receiver any) ([]byte, error) {
if _, exist := requestBodyParseAdaptorTable[contentType]; !exist {
return nil, errors.New(contentType + " : adaptor not found")
}
bodyData, err := ReadBody(ctx)
if nil != err {
return nil, err
var (
bodyData []byte
err error
exist bool
body any
)
bodyKey := "_body_read_result"
if body, exist = ctx.Get(bodyKey); exist && nil != body {
bodyData = body.([]byte)
} else {
if bodyData, err = ReadBody(ctx); nil != err {
return nil, err
}
// 设置读取结果
ctx.Set(bodyKey, bodyData)
}
if err = requestBodyParseAdaptorTable[contentType].Unmarshal(bodyData, receiver); nil != err {
return nil, err
}