最近根據業務需要對內部的核心接口進行改造,需要改成業務點對點的接口;核心接口采用的Restful api接口風格,可以說是數據引擎類型的接口(簡單說就是你不要告訴我你的業務,給我數據規則我幫你搞定);業務接口的功能主要是對核心接口的參數進行封裝,考慮到業務端變更頻繁,開發資源缺少(主要需要對核心接口了解),所以采取的方案提供一個接口管理平臺,此平臺可以根據指定的核心接口已經業務接口模板生成新的接口代碼并發布執行。
需求解決思路
- 接口通過swagger進行管理
對于接口管理技術上打算采用swagger進行業務接口設計和管理
可以通過定義直接生成業務接口代碼;
當然也可以通過自定義接口代碼映射成為swagger接口定義; - 使用jasper引擎接口生成和發布
考慮到接口可以動態發布上線,一開始想到的是使用動態語言python進行開發,不過有學習曲線(到不是需要難學只是需要掌握python相關框架體系結構會花點時間),第二方案是使用類似jsp這種動態編譯執行腳本,jsp本身使用的就是java語言而且可以使用到現有的自定義的工具類,可以說是比較符合我現有需求的選擇。那么tomcat和jetty采用的jsp引擎就是apache jasper了。
評估技術難點
- 動態接口在集群環境中生成和發布過程
- 自定義url使用jasper進行映射解析相關文件
- jasper直接解析字符串代碼
- 使用redis同步最新的業務接口代碼串到各部署機上
- 如何將swagger做的接口定義轉為jsp源碼
- 如何把自定義的動態接口映射成為swagger接口定義
后續待補充............