数学上验证完备性可能有点复杂,可能需要定义一个双向对应关系配置。
我之前也想过类似的问题,思路大概是下面这样的,简单分享下,抛砖引玉。后来觉得实现成本也有一些也挺麻烦的,还不如硬编码来的快就搁置了。除了单纯转换字段结构之外,还可以加一层校验方便在运行时判断是哪方的数据结构有问题然后报错。
首先需要定义字段结构模板描述,比如 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'][