protobuf前后端解析_如何优雅的解决前后端数据结构不一致的问题?

数学上验证完备性可能有点复杂,可能需要定义一个双向对应关系配置。

我之前也想过类似的问题,思路大概是下面这样的,简单分享下,抛砖引玉。后来觉得实现成本也有一些也挺麻烦的,还不如硬编码来的快就搁置了。除了单纯转换字段结构之外,还可以加一层校验方便在运行时判断是哪方的数据结构有问题然后报错。

首先需要定义字段结构模板描述,比如 API response 的:

{

status: string,

data: {

aaa: string,

bbb: {

bbc: string,

}

}

}

当然这个类型描述可以自己定,比较完善的参考案例是 GraphQL 的,但是解析起来也是挺复杂。也可以用 JSON Schema,但是这个模板结构就会复杂的多。这里就简单用多层级的 string 代替下概念。

然后就是前端 request 的模板:

{

aaa: string,

ccc: string,

}

之后定义关系,也是可以自己随便定的:

A['data']['aaa'] = B['aaa'];

A['data']['bbb']['bbc'] = B['ccc'];

之后拿到了 A 先进行校验格式,然后解析定义的关系开始生成 B,判断 B 有一个 ccc 然后值是 A['data']['bbb'][

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值