ladder 中文为梯子,这是一个能帮助你简化对接接口流程的自动化映射工具。比如在聚合配送领域,一个聚合厂商通常需要对接几十家的配送平台,每个平台对接成本在一周人天,通过这个工具,可以实现两天对接完成。
ladder 通过可视化配置,将配置信息持久化到数据库中,利用自研代码生成工具,读取数据库配置信息,生成对应代码,在类中添加注解,实现自动映射。 ladder 自上而下分为三层,详见下图:
- 支持字段的某参数来自于另外的请求,比如下单接口的价格来自预估价的响应;比如下单的用户 token 来自于 Redis。
- Conditional 的支持,比如某个映射在满足什么条件才能生效。
- 对校验的支持,可以集成到 MappedField 注解上,做一个布尔类型的表达式,在映射前先去执行这段表达式。(doing)
- 对返回对象反映射的支持
- 对回调接口的支持
- 对反映射接口的支持。比如调用下单接口,HTTP 返回了信息,我要把这个信息映射到某个对象中。整体就是 JSON -> Object 的过程。
- 为每一个请求提供一个结果映射配置,在系统启动时扫描入内存中。
- 映射后的切面支持,比如映射完获取 token 之后,需要将 token 缓存到 Redis 中。