mesh聚合请求增加返回值构建与解析
This commit is contained in:
parent
b33afff40c
commit
7ebc610c2e
@ -10,13 +10,14 @@ package mesh
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"git.zhangdeman.cn/gateway/validate"
|
"git.zhangdeman.cn/gateway/validate"
|
||||||
"git.zhangdeman.cn/zhangdeman/consts"
|
"git.zhangdeman.cn/zhangdeman/consts"
|
||||||
"git.zhangdeman.cn/zhangdeman/network/httpclient"
|
"git.zhangdeman.cn/zhangdeman/network/httpclient"
|
||||||
"git.zhangdeman.cn/zhangdeman/network/httpclient/define"
|
"git.zhangdeman.cn/zhangdeman/network/httpclient/define"
|
||||||
"git.zhangdeman.cn/zhangdeman/serialize"
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
||||||
"strings"
|
|
||||||
"sync"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Request(req *RequestConfig, receiver any) *Response {
|
func Request(req *RequestConfig, receiver any) *Response {
|
||||||
@ -79,6 +80,37 @@ func (c *client) Request() *Response {
|
|||||||
return c.resp
|
return c.resp
|
||||||
}
|
}
|
||||||
// 请求成功, 构建返回结果
|
// 请求成功, 构建返回结果
|
||||||
|
respByte := serialize.JSON.MarshalForByteIgnoreError(c.resp.AliasResultTable)
|
||||||
|
fieldList := make([]validate.StructField, 0)
|
||||||
|
for _, item := range c.reqCfg.ResultRule {
|
||||||
|
fieldList = append(fieldList, validate.StructField{
|
||||||
|
JsonTag: "",
|
||||||
|
Type: item.DataType,
|
||||||
|
Required: false,
|
||||||
|
RuleList: nil,
|
||||||
|
DefaultValue: "",
|
||||||
|
SourcePath: fmt.Sprintf("%v.%v.%v", item.RequestAlias, item.RequestResultLocation.String(), item.RequestResultPath),
|
||||||
|
TargetPath: fmt.Sprintf("%v.%v", item.Location, item.DataPath),
|
||||||
|
Errmsg: "",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
resByte, err := validate.Run(respByte, fieldList)
|
||||||
|
if nil != err {
|
||||||
|
c.resp.ErrorCode = "-500"
|
||||||
|
c.resp.ErrorMessage = err.Error()
|
||||||
|
return c.resp
|
||||||
|
}
|
||||||
|
c.resp.Raw = respByte // 原始返回数据
|
||||||
|
serialize.JSON.UnmarshalWithNumberIgnoreError(resByte, &c.resp.DataMap) // map结果
|
||||||
|
|
||||||
|
if nil != c.receiver {
|
||||||
|
// 解析到receiver
|
||||||
|
if err = serialize.JSON.UnmarshalWithNumber(resByte, c.receiver); nil != err {
|
||||||
|
c.resp.ErrorCode = "-500"
|
||||||
|
c.resp.ErrorMessage = err.Error()
|
||||||
|
return c.resp
|
||||||
|
}
|
||||||
|
}
|
||||||
return c.resp
|
return c.resp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user