[zeromicro/go-zero]api增加泛型或能统一返回bytes

2024-01-12 215 views
8

对接第三方会遇到很多不定项的,没有泛型会变成每次重新定义API 。

回答

6

问题描述:对接第三方,类型无法明确或存在一个key对应根据不同情况返回不同类型。 具体例子:对接移动物联网onenet,订阅推送时候将会得到 value 不同值的情况。 代码:

type ValueLbs {
    Cid int64 `json:"cid"`
    Lac int64 `json:"lac"`
}

type ValueRelay {
    P int64 `json:"0"`
}

type MsgStruct {
    At    int64  `json:"at"`
    Type  int64  `json:"type"`
    DsId  string `json:"ds_id"`
    DevId int64  `json:"dev_id"`
    //Csq   int64    `json:"value,optional"`
    //Lbs ValueLbs `json:"value,optional"`
    //Relay ValueRelay `json:"value,optional"`
}
7

这种情况最好还是用string,接受一个json字符串,接口根据不同客户,做对应的解析。

具体实施应该是这样: 数据库保存每个客户的推送的字段和类型,这样只要写一个通用方法去匹配客户提交的字段。