零程式碼一鍵生成高效能、高可靠的RESTfull web服務專案,使用go開發web服務本來就應該這麼簡單

zhuyasen發表於2024-01-29

sponge 是一個整合了自動生成程式碼、gin框架和一些常用流行庫的生產力工具。sponge擁有豐富的生成程式碼命令,生成不同的功能程式碼可以組合成完整的服務(類似人為打散的海綿細胞可以自動重組成一個新的海綿)。程式碼解耦模組化設計,很容易構建出從開發到部署的完整工程專案,讓你開發web服務專案輕而易舉、事半功倍,使用go也可以”低程式碼開發”。

Github地址: github.com/zhufuyi/sponge


特點

  • 使用簡單:使用UI介面操作,簡單易用。
  • web框架:內建了 Gin 框架和常用的中介軟體(日誌、request_id、jwt鑑權、限流、熔斷、鏈路跟蹤、指標採集等)
  • 自動生成程式碼:根據sql或protobuf和引數生成不同功能程式碼,例如生成web服務程式碼、handler(CRUD)程式碼、dao(CRUD)程式碼、model程式碼、redis快取程式碼等。
  • 程式碼解耦可擴充套件:所有生成的程式碼都可以無縫銜接,不需要手動調整程式碼,支援自動合併新增模板程式碼,實現api介面”低程式碼開發”。
  • 高可靠:服務程式碼解耦模組化設計,程式碼經過嚴格的測試,並遵循良好的編碼規範。
  • 高效能:在單臺伺服器中的實際業務中壓測獲取資料api介面輕鬆過萬qps。
  • 部署簡單:支援一鍵部署到伺服器、docker、k8s上。


優勢

  • 提高開發效率:透過生成程式碼來提高開發效率,省去大量手寫程式碼的時間。
  • 降低開發成本:整合了 gin 、gorm、go-redis 等流行庫和生成程式碼功能,只需專注編寫業務邏輯程式碼,可以快速開發高效能高可靠 web 服務,降低開發成本。
  • 提高開發質量:開發專案簡單化、標準化,生成的程式碼包括了測試用例。


功能

sponge包含豐富的元件(按需使用):


目錄結構

生成的服務程式碼目錄結構遵循 project-layout,程式碼目錄結構如下所示:

.
├── api            # proto檔案和生成的*pb.go目錄
├── assets         # 其他與資源庫一起使用的資產(圖片、logo等)目錄
├── cmd            # 程式入口目錄
├── configs        # 配置檔案的目錄
├── deployments    # IaaS、PaaS、系統和容器協調部署的配置和模板目錄
├── docs           # 設計文件和介面文件目錄
├── internal       # 私有應用程式和庫的程式碼目錄
│    ├── cache        # 基於業務包裝的快取目錄
│    ├── config       # Go結構的配置檔案目錄
│    ├── dao          # 資料訪問目錄
│    ├── ecode        # 自定義業務錯誤程式碼目錄
│    ├── handler      # http的業務功能實現目錄
│    ├── model        # 資料庫模型目錄
│    ├── routers      # http路由目錄
│    ├── rpcclient    # 連線grpc服務的客戶端目錄
│    ├── server       # 服務入口,包括http等
│    └── types        # http的請求和響應型別目錄
├── pkg            # 外部應用程式可以使用的庫目錄
├── scripts        # 用於執行各種構建、安裝、分析等操作的指令碼目錄
├── test           # 額外的外部測試程式和測試資料
└── third_party    # 外部幫助程式、分叉程式碼和其他第三方工具


快速開始

安裝sponge

支援在windows、mac、linux、docker環境下安裝sponge,點選檢視安裝sponge說明

開啟生成程式碼介面

安裝完成後,啟動sponge UI服務:

sponge run

在本地瀏覽器訪問 http://localhost:24631,進入sponge的UI介面,點選左邊選單欄【SQL】–> 【建立web服務】,填寫mysql dsn地址,點選獲取表名,然後選擇表名(可多選),接著填寫其他引數,滑鼠放在問號?位置檢視引數說明,填寫完引數後,點選按鈕下載程式碼生成web服務完整專案程式碼,如下圖所示:

web-http

解壓程式碼,開啟終端,切換到程式碼目錄,執行命令:

# 生成swagger文件
make docs

# 編譯和執行服務
make run

在瀏覽器開啟 localhost:8080/swagger/index.html,在頁面上進行增刪改查、自定義條件分頁查詢的api介面測試,如下圖所示:

web-http-swagger

就這樣在UI介面生成程式碼和幾行命令就完成了一個web後端服務,隨著業務增加,需要新增更多mysql表的增刪改查介面,在sponge的UI介面,點選左邊選單欄【Public】–> 【生成handler CRUD程式碼】,填寫引數,然後點選按鈕下載程式碼

web-http-handler

解壓程式碼,把internal目錄移動到web服務目錄程式碼中,然後執行同樣的命令:

# 生成swagger文件
make docs

# 編譯和執行服務
make run

接著在瀏覽器開啟 localhost:8080/swagger/index.html 對新增的api介面進行測試。


sponge開發文件

更多使用sponge開發web專案的詳情,點選檢視sponge開發文件


使用示例


影片教程


結語

sponge是一個幫助你輕鬆快速開發web應用的好幫手,透過自動生成程式碼減少人工編寫大量程式碼,讓開發者只需專注編寫業務邏輯程式碼,甚至實現零程式碼開發,極大提高開發效率和降低開發專案週期。不少開發者使用sponge開發的web服務已在生產環境中穩定執行,如果你正在尋找高效率開發web服務框架,sponge是一個不錯的選擇。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章