最近根据业务需要对内部的核心接口进行改造,需要改成业务点对点的接口;核心接口采用的Restful api接口风格,可以说是数据引擎类型的接口(简单说就是你不要告诉我你的业务,给我数据规则我帮你搞定);业务接口的功能主要是对核心接口的参数进行封装,考虑到业务端变更频繁,开发资源缺少(主要需要对核心接口了解),所以采取的方案提供一个接口管理平台,此平台可以根据指定的核心接口已经业务接口模板生成新的接口代码并发布执行。
需求解决思路
- 接口通过swagger进行管理
对于接口管理技术上打算采用swagger进行业务接口设计和管理
可以通过定义直接生成业务接口代码;
当然也可以通过自定义接口代码映射成为swagger接口定义; - 使用jasper引擎接口生成和发布
考虑到接口可以动态发布上线,一开始想到的是使用动态语言python进行开发,不过有学习曲线(到不是需要难学只是需要掌握python相关框架体系结构会花点时间),第二方案是使用类似jsp这种动态编译执行脚本,jsp本身使用的就是java语言而且可以使用到现有的自定义的工具类,可以说是比较符合我现有需求的选择。那么tomcat和jetty采用的jsp引擎就是apache jasper了。
评估技术难点
- 动态接口在集群环境中生成和发布过程
- 自定义url使用jasper进行映射解析相关文件
- jasper直接解析字符串代码
- 使用redis同步最新的业务接口代码串到各部署机上
- 如何将swagger做的接口定义转为jsp源码
- 如何把自定义的动态接口映射成为swagger接口定义
后续待补充............