基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

低代碼開發和API快速開發

在談低代碼開發平臺的時候我多次強調了對象模型和數據驅動的重要性,同時低代碼開發平臺不是零代碼開發,對于復雜規則的實現仍然需要自己寫代碼來完成。

而對于自己寫代碼實現復雜規則,其核心還是基于類似云原生里面ServerLess的思路,即通過API接口和服務來實現上層應用和底層能力提供之間的解耦。那么如何快速地開發和發布API接口服務,如何對API接口進行組裝和編排就成為了低代碼開發平臺不可缺少的一部分。

對于API快速開發和發布,既可以是一個獨立的子產品,也可以是我們規劃設計的整體低代碼開發平臺的一部分,但是核心都是基于對象建模和模型驅動的思路進行。

對于業界當前對于API快速開發,如何通過對象模型快速發布API接口,如何通過數據庫的數據表和SQL快速靈活發布API接口,如何對API接口靈活組裝和配置,并沒有特別好的開源產品,因此在做我們自己的API快速開發平臺的時候,更多還是借鑒了我們多年實施SOA項目,進行微服務架構實踐的一些實際項目需求出發進行。

對于SOA項目實踐,即對傳統的SOA集成中的數據庫適配,存儲過程適配等能力轉變為更加輕量易用的基于對象和數據庫的接口發布。

而對于項目實踐,經常會遇到和外部業務系統集成,需要開發自身接口的情況,那么通過API快速開發平臺可以快速的通過可配置化的方式發布對外接口能力,同時實現基本的API接口管控和治理。

這也是我們自主研發基于數據驅動的API低代碼開發平臺的初衷。

API快速開發平臺概述和應用場景

對于前后端分離的應用來說,后端應用主要是以API的形式對外提供能力,而在微服務架構盛行的當下,很多企業對于后端傳統的應用程序已經做了打散和拆分,實現了微服務改造。如果一個企業的IT建設比較全的話,那么在管理域、業務域和運維域的傳統信息化系統至少超過10個,全部經過微服務拆分改造后的微服務應用可能達到幾十甚至上百個。如此多的微服務應用不僅運維管控存在問題,而且微服務應用的開發、變更、升級都會存在較大的時間和資金成本。

微服務運維管控的問題交給Devops,本章只為應對微服務應用開發變更帶來的問題。目前業界提供了一個快速應對的解決方案—API開發設計平臺,該平臺能協助開發人員全程可視化、無代碼快速創建API并發布,業務變更時快速更新API,分鐘級完成微服務應用的產品開發部署。API開發設計平臺真正降低了企業應用進行微服務改造的難度,對于開發設計人員來說是一個非常不錯的工具。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

API開發設計平臺的適用場景主要包括以下幾個方面:

1.統一后端API設計/開發/測試平臺:承擔API的設計、開發、測試功能,可通過配置完成API的在線發布,業務人員同樣可以熟練操作。

2.移動端API開發平臺: 對于APP、微信、小程序、釘釘等前端應用,可作為統一后端API開發平臺

3.前后端分離開發:對于前后端分離的業務系統,可作為后端API的開發平臺

4.數據快速提取:能實現數據中臺的數據能力發布,可作為數據快速提取平臺

5.微服務架構開發:同樣可作為業務系統 (OA、CRM、ERP、HR、MES)微服務改造與開發的基礎平臺。

對于API開發開發平臺我們采用微服務架構進行開發,開發底層框架選擇了JeecgBoot,并在該開源框架下做了一些優化處理和定制。

而對于API接口服務的開發,

首先來談一下平臺的整體技術架構,該平臺底層框架采用JeecgBot,架構團隊在JeecgBot的基礎之上做過一些優化。對于服務的發布,平臺采用了IBM開源輕量的Node-Red作為API在線發布的基礎組件,使用FreeMaker開發模板作為微服務應用生成框架,并集成了DBApi產品的后端所有功能。其他技術框架包括Springboot swagger Mybatis lombok Redis Shiro Maven Vue等。

場景一:數據實體生成API的實現

在前面已經談到,該API開發平臺是基于對象建模和數據驅動的,因此核心是里面的元數據管理和數據實體定義。通過數據實體既可以向前生成API接口服務,又可以向后生成后臺的數據庫對象和數據表。

平臺支持多數據源管理,支持連接主流的關系型數據庫Mysql/Oracle/Sqlserver.支持連接的在線測試、密碼加密、連接共享等功能。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

對象建模能力通過元數據管理來實現。元數據為最底層的原子數據對象,支持對元數據的基礎管理能力,同時元數據本身又是建立數據實體的基礎數據依賴,可通過關聯多個元數據來構建多層數據實體。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

支持通過導入元數據的方式來建立多層數據實體(目前支持父/子/孫三層實體關系),可根據選擇的數據源連接類型來生成數據庫建表的SQL語句,并可直接在平臺上對數據源連接的數據庫生成數據表結構和表依賴關系。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

支持數據實體快速發布在線API,在線API發布支持公有和私有兩種方式,私有API通過配置群組和Token值來限制訪問;通過數據實體發布的API支持對該數據實體的新增/修改/刪除/查詢,操作的數據會同步讀取或者寫入數據實體對應數據源連接的庫表中。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

在線API發布后形成Node-Red的流程,通過設計器可對流程進行拖拽修改;對于發布后的API,可直接在平臺上進行測試。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

從上可以看到整個思路完全是基于對象建模驅動,通過對象建模來定義詳細的實體對象模型和接口契約規范,一方面是定義的對象模型可以通過配置的數據源管理向后臺生成數據庫表,一方面是可以直接將對象模型發布為通用的Rest API接口服務。

同時發布的內容在后臺會生成對應的Node-Red服務編排模板,如果對于發布的接口需要進行相關的修改和調整,也相當容易實現靈活定制和配置。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

場景一:數據庫表和SQL直接發布API接口

如果你已經創建了數據庫對象和數據表,那么你可以直接將數據表發布為Rest API接口,同時也可以自己定制參數化SQL語句,并將SQL語句發布為API接口服務。

對于數據庫中已經存在的數據表,也可直接發布生成API。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

數據表API發布功能除了發布常用的對數據表的新增/修改/刪除/查詢API之外,還發布對數據表進行分頁和條件查詢的API;數據表API發布支持對發布后API的動態編排,公有私有配置、API端點的在線測試。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

SQL語句發布為API接口服務

可編寫SQL語句發布在線API,在線API發布在當前服務器下,支持動態SQL的編寫和發布,支持傳入參數的定義、配置和SQL映射。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

2、通過SQL發布后的API可支持上線/下線操作、公有私有配置、在線API測試操作。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

場景四:基于YAML規范來開發發布API:

還有一種場景是首先進行了API接口契約規范的設計,然后在進行API接口的開發實現。那么在API契約確定清楚后,實際整個API接口就已經可以按規范進行發布。

因此我們API快速開發平臺在功能實現中也集成了第三方API規范設計器,支持YAML/JSON格式規范的結構化設計。也集成了Swagger設計器,可靈活編寫API規范文件。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

基于規范的API在線發布,可按步驟填寫配置完成API的開發發布。支持對規范入參與SQL參數的快速映射。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

基于規范在線發布后的API同樣也會部署到Node-Red中形成流程,支持對發布后API的動態編排,公有私有配置、API端點的在線測試。

基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)基于對象模型和數據驅動的API低代碼開發平臺(基于對象的編程)

簡單總結

經過上面典型場景描述可以看到,API低代碼開發平臺圍繞對象驅動和元數據建模為核心,支撐API接口的快速定義,快速發布能力。同時在已有數據庫表和對象的情況下又能夠快速的將數據庫表,參數化SQL預計等發布為API接口服務。

平臺API開發設計功能支持Mysql/Oracle/Sqlserver三種類型數據庫,并且API加入了數據庫事務支持,針對API服務的整體性事務,出錯回滾所有數據。在線API的調用和導出后微服務應用中API的調用數據和返回數據完全相同,保證了API在線使用和分布式部署后使用的一致性。在線API調用日志都已記錄并可供查詢和統計。

同時在平臺我們當前還在進一步完善對于發布的API接口進行服務編排和能力組裝的能力。該平臺一方面是應用到日常的API接口快速開發,同時也是低代碼開發平臺的一個重要能力補充。

注:歡迎點贊,歡迎轉發評論,如果大家都感興趣的話我后續會考慮將該產品開源出來。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年7月8日 下午1:49
下一篇 2024年7月8日 下午2:01

相關推薦

又大又紧又硬又湿a视频| 亚洲福利视频网址| 真人无码作爱免费视频| 国产丝袜第一页| 约会只c不y什么意思| 四虎影院成人在线观看| 精品一区二区三区水蜜桃| 制服美女视频一区| 狠狠色狠狠色综合日日五| 先锋影音av资源网| 欧美综合自拍亚洲综合图| 亚洲特级黄色片| 欧美a级完整在线观看| 亚洲一级毛片免观看| 日本高清乱理论片| 久久婷婷是五月综合色狠狠 | 亚洲av无码一区二区乱孑伦as| 日韩在线a视频免费播放| 久久无码无码久久综合综合| 打桩机和他宝贝124是哪一对| 中美日韩在线网免费毛片视频| 尤物国产精品福利三区| 一本久久伊人热热精品中文| 在线观看欧洲成人免费视频| 99久久精彩视频| 国产福利电影在线观看| 青娱极品盛宴国产一区| 国产中文字幕在线视频| 精品一区二区三区在线播放| 免费看一级性生活片| 欧美日韩久久中文字幕| 亚洲乱色伦图片区小说| 日本乱偷互换人妻中文字幕| 丰满人妻熟妇乱又伦精品 | 久久国产精品-久久精品| 成人口工漫画网站免费| 一区在线免费观看| 国产精品青草久久久久福利99| **实干一级毛片aa免费| 国产夫妻在线视频| 精品国产一区二区三区久久影院|