國內外開發平臺有不少但大多都是前後端混合一體的開發模式即自定義一個表單然後和後端的數據模型綁定輸出HTML到前端有的可以同時輸出PC和移動端的HTML代碼,但這種開發平臺基本上是實現不了前後端分離的,架構上存在天然的缺陷即後端數據沒有API服務化、API沒有可視化、API不能重複為其他業務系統所重用,而且基本不能和微服務架構進行融合,所以開發的越多越重後面業務需求變化或生命週期一到這些模塊的重構風險和成本也就越大,而採用前端後分離和微服務化開發才是企業業務系統長久開發之道,而國內RestCloud就是專門一款專注於企業後端API開發的專業化平臺,企業只要選擇一個成熟的前端UI框架開發前端UI即可,後端API由RestCloud API開發平臺可以快速發佈實現。
RestCloud是一款更輕量級、更快速、更全面、更低代碼量、更易於學習和使用的專業化後端API的開發平臺。
RestCloud通過建立數據模型和SQL配置功能可以無代碼快速的實現80%的API開發工作,RestCloud本身已含有: 註解式開發、API接口自動掃描、驗證框架、授權框架、緩存框架、IOC依賴注入、Class熱加載框架、異常處理框架、過濾器框架、基於Web配置的數據持久層框架、多數據源管理框架、多數據庫事務管理框架、異步請求隊列框架、跨域請求等等核心功能, 使用RestCloud開發時開發人員只需要實現業務邏輯即可
RestCloud API開發平臺適用業務場景
- 作為企業統一的後端服務開發平臺,承擔API的設計、開發平臺
- 手機移動端APP、企業微信、小程序、釘釘的統一後端API開發平臺
- 前後端分離的業務系統的後端API服務開發平臺
- 各種網站或企業門戶系統的開發平臺,基於Velocity、FreeMarker模板的開發平臺
- 各種企業業務系統的基礎開發框架(OA、CRM、ERP、HR、MES)
- 已有業務系統的API接口開發平臺
- 使用RestCloud替換或輔助SpringBoot開發框架
RestCloud API開發平臺的主要功能
微應用管理
業務系統中微應用可以作為業務獨立模塊,微服務中微應用可以按照服務的粒度進行劃分,一個微應用代表一個最小的微服務單元,這個單元可以進行獨立開發、部署、上線、測試,微應用開發完成後可以通過Docker容器進行快速部署 RestCloud實現了在開發環境中統一對微應用進行授權、創建、管理並能進行團隊並行開發,無需像SpringBoot為每個應用創建一個工程
![專業的後端API快速開發平臺來了,輕鬆實現前後端分離開發](http://p2.ttnews.xyz/loading.gif)
數據模型管理
RestCloud提供了非常強大的業務數據建模功能,不管是單表、多表、一對多、多對一都可以由數據建模功能通過配置完成,同時數據建模支持RDBS關係數據庫和NOSQL數據庫.
- 根據已有數據庫表創建數據模型或根據數據模型自動創建數據庫表
- 可以通過業務模型配置快速實現主子明細表的關聯查詢和持久化
- 可以通過業務模型配置快速實現樹型結構的數據TreeJson發佈、關聯刪除等操作,無需編碼
- 可以實現一對多、多對多、多對一的查詢、持久化、刪除等操作
- 可以根據數據模型一鍵生成MVC的Java代碼
- 所有數據模型自帶Excel的導入和導出功能
- 所有數據模型自帶數據管理功能,無需數據庫客戶端工具即可管理所有數據
- 對所有數據模型可快速實現分頁查詢功能,無需編碼
- 數據模型自動關聯API,可以快速查看操作此數據模型的所有API
- 數據模型自動關聯SQL語句,可以快速查看操作此數據模型的所有SQL語句
![專業的後端API快速開發平臺來了,輕鬆實現前後端分離開發](http://p2.ttnews.xyz/loading.gif)
業務驅動API開發-API在線設計
開發人員根據需求原型圖在RestBoot中對API進行設計,定義URI以及輸入輸出參數和模擬數據,定義完成後前端開發人員可先進行UI開發,直到前端和業務人員確定需求後再由後端工程師根據邏輯發佈API即可,一個好的API設計有利於業務邏輯的快速實現
(API接口參數設計界面)
通過數據模型一鍵發佈API服務
先對業務可能用到的主數據模型進行建模設計,然後根據對主數據模型的CRUD等操作發佈相應的API,同時進行前端UI的開發並及時調整後端API的業務邏輯,實現對業務模塊的快速迭代開發.
(由數據模型一鍵發佈API接口)
在Eclipse中開發API服務
與SpringBoot開發方式基本一致,只需要使用RestBoot的註解即可以快速把一個Java方法發佈為API服務,同時RestBoot在註解中已自帶有驗證框架和參數接收功能,可極大提升開發效率
(在Eclipse中通過代碼發佈API)
通過SQL語句發佈API服務
RestCloud支持任意SQL語句發佈為API服務,無需編寫Java代碼只需定義SQL語句即可快速發佈為API服務
(通過編寫SQL語句發佈API)
通過Web IDE開發API服務
開發人員可以直接使用Web IDE編寫Java代碼並配合RestCloud研發的Java Bean容器管理技術中和Class熱加載技術,可快速實現在雲端編寫代碼併發布API服務
通過數據模型生成MVC代碼
對已經建好的數據模型除了可以自動發佈API外也可以生成MVC三層Java代碼到Eclipse中進行修改
(支持數據模型字段到JavaBean字段的雙向映射配置)
Web MyBatis SQL配置管理
RestCloud自主研發了基於Web可視化管理的類似mybatis的核心功能,開發人員只需要在Web界面下配置SQL語句,無需在xml或註解配置,可以支持複雜的動態SQL語句,可以自動實現數據模型到Java Bean的雙向映射,開發效率高於mybatis
- 通過Web界面的SQL配置可以大大降低學習和使用難度,同時有利於SQL語句的統一管理和監控
- 系統自動計算所有SQL語句的平均性能和執行次數
- SQL語句可以與數據模型進行雙向關聯,修改表或SQL時更容易評估影響範圍
- 提供與MyBatis一樣的Java Bean方法來操作SQL與Java Bean的雙向映射
- 同時系統也可兼容引入MyBatis來操作數據庫
(支持最為複雜的動態SQL語句)
Java Bean容器管理
RestCloud Java Bean容器管理為完全自主研發的核心功能之一,容器管理中可以查看到本平臺所有運行的Java Bean實例、緩存信息,對本平臺的Java Bean容器和緩存數據進行了可視化的Web管理。
- 支持IOC依賴注入,能自動檢測循環依賴並給出錯誤提示,支持熱加載Java Bean,系統在Web界面下能自動關聯Java Bean與API服務
- 同時也無縫支持與Spring Bean的管理和使用,以更好的支持基於Spring框架編寫的API運行到RestCloud平臺下
(Web界面下的Java Bean管理界面)
服務聚合與依賴
服務聚合是指在Web界面中通過無代碼的模式把多個已經發布的原子API動態組合成一個新的API併發布的技術(任何使用代碼重新編寫邏輯組裝API的技術都不是真正的服務聚合), 新聚合的API服務會依次調用所有服務並把結果數據一次性輸出給調用端 調用端也可以POST數據包給聚合服務,聚合服務會依次調用所有服務,並把數據包分配給每一個被聚合的服務,被聚合的服務也支持依賴關係的配置,可以通過配置把前一個API執行的結果傳入下一個API的輸入參數。
RestBoot對聚合服務的事務支持:如果被聚合的多個服務其中一個發生錯誤時,系統將自動回滾所有被聚合服務的數據。
服務控制策略插件管理
- RestCloud可以通過RestCloud API網關或者API本身兩個粒度來對服務的調用進行控制
- SpingCloud一般只在客戶端層面進行調用者的自我保護,而對於服務提供者一般不提供保護策略,如果php、.net調用API時SpringCloud的API服務基於處於裸奔狀態
- RestCloud的服務控制策略是在服務提供者的角度提供自我保護的一種自定義策略,不管是java ,php,.net調用均處於自我保護狀態中
- 流量控制策略:可以控制一個Rest服務的同時併發數,超出併發數時輸出模擬數據
- 服務緩存策略:可以緩存一個服務的輸出結果,當輸入相同參數時直接輸出緩存數據,不再執行業務邏輯
- 事務控制策略:可以指定一個服務是否支持多數據庫事務
- 服務凍結策略:當一個服務運行出錯或異常時可以設置是否立即鎖定本服務
- IP黑白名單策略:可以拒絕不在白名單中的IP請求
(服務控制策略插件可以由用戶自定義)
異步服務隊例
- 所有服務均可標識為異步請求(無需編碼),異步服務請求自動加入調度隊列
- 適合於高併發或者訂閱類型的服務,客戶端請求無需等待,只管發起服務執行完成自動回調
- 本平臺異步服務隊列通過將消息的完全持久化技術實現請求數據的高可用性,不會因為停機或掉電丟失未執行完隊列數據的情況
- 首創等待類型的異步服務請求支持如:業務流程需要查詢庫存數量,只有庫存數量為0時平臺才主動通知業務流程發起一個採購流程
菜單管理
為了加快應用的開發速度,RestCloud中已經自帶前端應用必須用到的菜單管理模塊,可以快速的針對每個應用定義一個或多個菜單,並支持每個菜單項的權限控制。 菜單在Web界面中定義好後自動輸出成為Tree Json數據,前端UI根據此Tree Json組合成菜單即可,大大加快了應用的開發速度。
數據字典管理
在前端UI開發中會有大量的Select項數據或者需要動態配置而不是硬編碼的數據,這些數據項如果全部依賴後端開發人員進行編寫維護模塊將消耗大量的無技術含量的時間,RestCloud充分考慮到這類需求提供了數據字典管理功能, 後端開發人員只需要在Web界面中的數據字典功能模塊中對錄入數據的字段進行定義後就可以直接錄入這些動態數據項,這些數據項無需編碼就可以發佈為API接口供前端UI開發人員使用。 極大的節省了後端API開發人員的開發時間。
(可以自定義數據字典的錄入表單)
後端視圖模板技術
RestCloud提供後端視圖模板技術且同時支持FreeMarker和Velocity兩種模板
- 視圖模板技術可對API服務產生的輸出結果數據使用視圖再包裝一次再輸出給調用端
- 通過視圖模板技術可以很好的支持傳統MVC(前後端不分離)的開發模式,同時也可以很方便的使用本平臺製作網站或企業門戶
- 支持Web界面編寫和維護所有視圖模板,無需修改模板文件,大大加快了模板的迭代開發速度
(在Web界面中實時維護模板代碼,保存後立即生效)
多數據源及跨數據庫事務支持
在本平臺開發的RestAPI可以同時跨多個數據源進行數據存取服務,同時平臺提供了整體的多數據源事務控制功能,無需任何編碼只需要註解或勾選支持事務即可。
服務模擬
- 支持Web界面下自定義模擬數據,而不是在Java編碼中編寫模擬數據,可以支持大數據量的模擬,用Java代碼很難描述
- 可以針對數據模型自動生成模擬數據,能很好的支持分頁測試及大數據量的測試
- 支持自定義模擬數據生成規則
- 在服務處理模擬狀態時把模擬數據輸出給調用端
- 在服務的業務邏輯還沒有完成開發的情況下不影響前端系統的調用和開發
- 在Rest服務指定服務為模擬狀態即可(無需編碼),然後選擇要模擬輸出的Json即可,當客戶端調用時系統就會讀取服務模擬輸出配置中的Json輸出給調用端
(自定義模擬數據生成規則)
API服務自動化測試
- 提供Web界面下的服務測試功能
- 服務測試不僅可以測試本平臺的服務也可以測試外部的Rest服務
- 支持Debug功能可以針對本平臺的Rest服務進入調試狀態
- 對於開發好的Rest服務可以使用服務測試功能快速測試服務是否達到設計要求
- 測試結果可以直接保存為API接口的成功或失敗示例
- 測試數據可以直接保存為測試用例
- 系統能自動運行測試用例並計算測試成功率和失敗率
- 系統能自動定時的生成測試報告
灰度發佈
- RestCloud的灰度發佈可以在兩個層面進行控制,如果部署了RestCloud API網關則可以在API網關層面進行粗粒度的灰度發佈功能配置
- 當沒有API網關時則可以使用RestBoot開發平臺自帶的灰度發佈功能實現細粒度的API灰度發佈功能
- RestBoot可以把同一個API服務的不同業務邏輯發佈給不同的角色或部門及用戶
- 當新版本的API服務V2.0運行穩定後下線V1.0服務即可平滑升級服務,如果新發布的服務出錯則系統自動凍結該服務,自動回滾到V1.0服務
- 接合API網關可以很好的實現不同粒度的灰度發佈功能實現
跨域請求
RestCloud平臺已內置已經支持Ajax跨域請求,在開發前後端分離的系統時可以很好的進行前後端服務器的分佈式部署,前端服務器可以使用Nodejs後端使用Tomcat等,通過Ajax跨域請求API服務.
權限管理
權限配置功能主要給所有Rest服務進行權限分組管理,通過權限組再去關聯角色|用戶|部門,客戶端在調用服務時平臺會進行權限檢查如果沒有權限的用戶進行調用則系統會提示“無權調用本服務”。
組織機構管理
RestCloud平臺自帶組織機構管理模塊,也可以很容易的集成第三方的組織架構數據庫登錄.
版本管理
在RestCloud中開發了的應用無需像Eclipse工程一樣進行打包,只需要在Web界面中對應用進行打包並生成版本然後到安裝有RestCloud平臺的服務器中通過Web界面就可以直接安裝上線運行,免去對應用工程的編譯、打包、上傳、重啟等一系列工作,極大的提升了應用的迭代速度。
定時任務
支持定時執行Java Bean中的業務邏輯,在集群時可以指定定時任務執行的服務器以及協作方式
(直接在Web界面中動態配置定時任務並可以進行啟停操作)
閱讀更多 RestCloud 的文章