快速實現業務規則的開源API邏輯伺服器簡介

banq發表於2024-04-14


API Logic Server 是一個開源 Python 專案。它是一個用於專案建立的CLI,以及用於專案執行的一組執行時(SAFRS API、Flask、SQLAlchemy ORM、業務邏輯引擎)。

它作為標準 pip 安裝執行,或在 Docker 下執行。

對於尋求提高業務敏捷性的開發人員及其組織, API Logic Server 提供

(1)微服務自動化:使用1 個命令建立可執行專案:

  1. API自動化:每個表的增刪改查,分頁,樂觀鎖定,過濾和排序,以及
  2. 應用程式自動化:多頁面、多表管理應用程式。

(2)IDE 中的自定義:使用標準工具(Python、Flask、SQLAlchemy、GitHub 和 Docker),以及
  1. 邏輯自動化:獨特的規則 -多表推導和約束更加簡潔
  2. 部署自動化:建立用於容器化系統並部署到 Azure 的指令碼。

與框架不同,不再需要數週至數月的複雜開發。API Logic Server為即時整合和應用程式後端提供獨特的自動化。

在虛擬環境中安裝 API 邏輯伺服器

python3 -m venv venv                 # windows: python -m venv venv
source venv/bin/activate             # windows: venv\Scripts\activate
python -m pip install ApiLogicServer

然後,驗證它是否正常工作 - 建立並執行演示:

驗證 - 建立並執行演示

ApiLogicServer create --project-name=sample_ai --db-url=sqlite:<font>///sample_ai.sqlite<i>
code sample_ai

開發API

  • 使用傳統框架手工建立 API 和管理應用程式需要很長時間,而且太複雜
  • 使用 VS Code 和API Logic Server(開源)自動建立完整的系統。
  • 然後,我們將新增帶有規則的業務邏輯,並使用Python新增自定義端點和Kafka 整合。

操作步驟:

  • 向 Copilot 提交資料庫的自然語言描述。這將建立一個 Python 資料模型(SQLAlchemy 類)。  
  • API Logic Server 使用 SQLAlchemy(一種流行的 Python ORM)從 Copilot 模型建立資料庫,然後透過讀取資料庫架構建立完整的專案。該專案包括您的資料模型類、API 和管理應用程式,完全配置為執行。
  • API Logic Server 會建立一個完整的專案
  • 該專案是可執行的,提供 API 和管理應用程式,實現敏捷協作並解鎖自定義應用程式開發。

這個API有自己的管理程式:

  • 管理應用是基於React Admin,提供資料查詢/更新服務,支援多表自動連線和頁面導航。這可以啟動敏捷的業務使用者協作,並提供後臺資料功能。
  • JSON API提供檢索/更新服務,包括支援選擇列和相關資料。這解除了自定義應用程式開發的障礙,在等待自定義 API 開發時,自定義應用程式開發通常會被壓縮到專案的末尾。

使用規則自定義:邏輯自動化

  • API 邏輯伺服器包含一個規則引擎。您可以使用 IDE 程式碼完成服務在 Python 中宣告規則。  
  • 它還提供了:類似電子表格的規則將邏輯程式碼(應用程式的一半)減少了 40 倍。
  • 這些規則是可執行的。它們偵聽 SQLAlchemy ORM 事件,並觸發以響應事務中的實際更改。如果規則(及其開銷)引用的資料未更改,則規則(及其開銷)將被修剪。
  • 規則是可除錯的。標準日誌記錄描述每個規則觸發,包括行的狀態。並且,您可以使用偵錯程式。 
  • 基於使用者的角色,為行級安全性提供了類似的宣告性規則。授權資訊可以從 SQL 資料庫或企業儲存(例如LDAP 或 Active Directory)獲取。

使用 Python 進行定製
例如:

  • 可以自定義API端點:想象一下從 B2B 合作伙伴那裡接受指定格式的訂單,進行宣告性對映定義,這會自動啟用上述業務規則來檢查信用。
  • Kafka 整合的自定義邏輯:讓我們進一步想象一下,接受的訂單必須進一步轉換,並透過 Kafka 訊息傳送到發貨。除了規則之外,您還可以為業務邏輯提供 Python 程式碼。

藉助大模型實現快速開發
滿足速度和簡單性有 4 個關鍵要素:

  1. 自然語言處理: 即使是精明的 SQL 程式設計師也歡迎語法幫助。從 Copilot 提供的自然語言開始,夢想成真了。
  2. 微服務自動化:無需進行緩慢而複雜的框架編碼,只需插入資料庫即可獲取即時 API 和管理應用程式。
  3. 使用宣告性規則的邏輯自動化:規則不是描述邏輯如何執行的繁瑣程式碼,而是表達您想要完成的任務,並將應用程式的後端部分減少 40 倍。
  4. 可擴充套件性:使用 IDE、Python 和標準包(例如 Flask 和 SQLAlchemy)完成剩餘的元素。

相關文章