解决api接口返回多层嵌套的json,在中间的某一层为null的问题

后端 API 重要的是语义准确而非前端使用方便。null、空对象、空字符串的语义是不一样的,牟然转换容易丢失语义,引发后续维护的困难。我在此基础上补充点更贴近现实的内容。

如果不允许有 null,我建议 API 直接返回错误信息,而不是前端再做错误处理。

到底要不要返回默认值取决于该域的实际用途。如果该域的默认值是为了处理 View 层的问题,那么这个默认值就肯定只能是 View 自己去处理。如果后端服务器为你提供了默认值,一是服务器自己实现了与自己无关的逻辑;二是如果该 API 不只一个用户,这个逻辑就蔓延到其他用户身上;三是如果后续要改 View 的逻辑(例如判断是否为空值),就需要后端开发配合实现,增加额外的沟通合作成本。
如果该域的默认值是系统设计上的(例如用户权限默认为只读),此时就后端就(很显然)应该返回默认值。这就是它要做的事。

针对取值困难的问题,JSON 数据的取值还是比较简单的。使用 Lodash 的 get function(_.get(object, path, [defaultValue])) 或者自己包装一套类似的 API,应该足够解决大部分数据结构的取值,判空,默认值问题。

实在不行,用 Node.js 实现一层中间层用于数据预处理也是非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值