为什么需要数据组装器?
在实际项目中,我们会遇到类似这样的需求:为了安全性,要求接口在返回用户的手机号、信用卡、密码等敏感信息时进行掩码处理,比如一个实际为 13344445555 的手机号,接口返回时需要返回 133****5555
。
类似这样的场景,还有比如旧格式兼容、日志数据脱敏,数据动态格式化等。
概念
把以上需求抽象出来,我们定义「数据组装」的概念如下:
接受一个原始数据,根据需要改变其内容格式并返回最终数据的过程就是数据组装,实现这个过程的类就是数据组装器。
DOF 数据组装器在应用场景
通过数据组装器,可以在不破坏 DOF 数据模型和实体对象持有原始数据的前提下,只在数据出口层进行数据格式定制。这样才能保证服务层使用数据模型的时候一定获得的是原始数据。
在不更改接口定义的前提下,定制接口数据输出格式。
在不更改接口定义的前提下,定义接口参数输入的兼容字段。
数据组装器:你再也不用纠结接口参数和返回值到底时候应该驼峰法还是下划线风格了,我都可以兼容。
- 通过数据组装器内置的子组装器和递归属性,可以将某个数据字段进行关联组装,并自定义组装方法。这个特性可以在需要关联查询的时候少些很多冗余代码,只需要声明和配置即可。
注意:递归功能过于灵活,在关联查询的数据量比较大的时候,你需要取舍是否启用该特性。一般只推荐在做好缓存和对返回数据量有限制的情况下才使用递归属性,否则可能有性能问题。
定义一个数据组装器
使用数据组装器
在 Port 中组装响应数据的返回格式
详见 「Web - 数据组装」。