Amoeba是动态进行json转换的组件,通过配置进行数据格式转换,可以减少接口的编码,适用于有较多接口适配需求的业务场景。
可以参考 rule/ mock/ 下文件。
- 定制规则,可以放在 rule 内。也可以用其他方式自定义规则。将自定义规则函数传入 amoeba.Start即可。
- 配置路由,实现反向代理,不同框架有不同实现。router.Any("/amoeba/*proxyPath", amoeba.ReverseProxy)。
Amoeba是动态进行json转换的组件,其递归Schema,与gjson组件,对json进行解析及重组。
- 支持7种输出类型:"integer"、"boolean"、"float"、"map"、"array"、 "object"、"string"。
- 使用Json Schema,仅使用简单字段,并扩展增加Value、Key字段。并扩展支持Map,和Array里Item作用一致。
- 设置Value获取数据,其获取格式为:internal_class_info.name(内部使用 gjson 进行获取数据)。 3.1 对叶子节点,设置Value。 3.2 对map/array,设置Value,对map需要设置key
- Array/Map 可以对应 Array|Map,且必须对应两者之一。
- Items 是属于Map/Array内子类型表述所用,其数据解析,限定为该 Map/Array内。
- Items 是 内不支持不同类型,及Items进行描述时是 Object。
- 默认直接支持 int\bool转换,integer\string\bool 转换。
范围:String 叶子节点,以及 Map里 Key 使用:使用 Golang fmt.Sprintf(格式化样式, 参数列表…)样式 来支持扩展,如:"66-%s, class_id",注意只能使用 %s。
- Amoeba 可以有效支持微服务之间的依赖倒置。
- 建议建议底层服务使用,保持聚合层的稳定,由底层服务维护,等同于接口放在底层服务,底层接口变更时,相关接口单测充分覆盖。更容易维护。