天天看點

inBuilder今日分享丨RESTful API動态釋出技術

作者:inBuilder低代碼平台

RESTful API是什麼?在inBuilder中的應用?如何實作動态釋出?本文将為你一一解答。

一、什麼是RESTful API?

RESTful API是一種流行的API設計風格,可以讓軟體更加清晰、簡潔、有層次、易于維護。它充分利用了 HTTP 協定的各種功能,是 HTTP 協定的最佳實踐。

二、RESTful API在inBuilder中的應用?

在inBuilder中,前後端通信采用RESTful風格的API。通過inBuilder低代碼平台開發的應用中,API同樣符合RESTful風格。

作為前後端通信的接口,inBuilder中每一個應用都需要衆多的RESTful API來提供服務,為了提高開發效率且保證可維護性和穩定性,inBuilder使用了統一業務模組化語言及RESTful API動态釋出技術自動生成和釋出RESTful API。

三、RESTful API動态釋出技術詳解

inBuilder中的RESTful API動态釋出技術根據統一業務模組化語言生成外部服務定義,将後端提供的服務建構并釋出為RESTful API供外部調用,整個過程包括五個步驟(見圖1所示):描述API、生成代碼、編譯代碼、加載位元組碼和注冊釋出。具體實作過程如下:

inBuilder今日分享丨RESTful API動态釋出技術

圖1 RESTful API動态釋出過程

1、描述API

外部服務定義(見圖2及圖3)描述了提供服務的業務資源(如:視圖對象)以及該業務資源提供的具體操作資訊。每個具體操作中定義了請求路徑、HTTP方法、參數、傳回值等資訊。

inBuilder今日分享丨RESTful API動态釋出技術

圖2 外部服務定義中繼資料類型

inBuilder今日分享丨RESTful API動态釋出技術

圖3 外部服務定義詳細内容

2、生成代碼

根據外部服務定義資訊,inBuilder可以生成RESTful API的Java代碼。生成的代碼樣例如圖4所示。

inBuilder今日分享丨RESTful API動态釋出技術

圖4 EAPI代碼生成樣例

3、編譯代碼

生成的Java代碼需要編譯成.class檔案才能被JVM加載運作。inBuilder中使用Java動态編譯技術,即JDK提供的javax.util.JavaCompiler類在運作期編譯Java源代碼。JavaCompiler類編譯方法輸入輸出如圖5所示。

inBuilder今日分享丨RESTful API動态釋出技術

圖5 JavaCompiler動态編譯方法

4、加載位元組碼

編譯後的位元組碼(即.class檔案)需要加載到JVM中才可以使用,這就需要借助Java提供的類加載器将位元組碼動态加載到JVM中。Java提供的URLClassLoader可以指定目錄來加載類,inBuilder中通過實作其子類,将編譯後的位元組碼加載到JVM中使用。動态加載位元組碼關鍵步驟如圖6所示。

inBuilder今日分享丨RESTful API動态釋出技術

圖6 利用類加載器加載位元組碼

5、 注冊釋出

加載位元組碼後,可以拿到Class類對象,使用Java反射生成該類的執行個體對象。CAF架構提供了接口用于注冊RESTful API服務,調用接口時将執行個體對象作為入參傳遞即可完成RESTful API的動态釋出。釋出過程如圖7所示。

inBuilder今日分享丨RESTful API動态釋出技術

圖7 調用CAF架構接口注冊釋出RESTful API

總之,inBuilder團隊的RESTful API動态釋出技術使用了Java提供的動态編譯技術,能夠動态釋出RESTful API并提高開發效率,讓應用更易于維護和穩定。

如果想了解更多Java動态編譯技術,可點選下載下傳安裝inBuilder開源社群版:https://ibc.inspures.com/

繼續閱讀