您的位置 首页 kreess

基於GoFrame框架開發要點

Go語言對於初學者是有一定的門檻的,在學習完Go語言基礎後,就感覺不知道下一步該如何學下去,本文以GoFrame最新框架來講解一下如何開發一個項目。首先我們要瞭解一下通過

Go語言對於初學者是有一定的門檻的,在學習完Go語言基礎後,就感覺不知道下一步該如何學下去,本文以GoFrame最新框架來講解一下如何開發一個項目。

首先我們要瞭解一下通過GoFrame框架腳手架自動生成的各個目錄和文件的含義,我建議大傢能吃透相關概念,比如數據模型、領域對象、業務接口,理解項目工程化,這樣對於CV工程師來說,提高自身能力非常重要!

在這裡插入圖片描述

dao層用於數據訪問,這是一層抽象對象,用於和底層數據庫交互,僅包含最基礎的 CURD 方法 model層是結構模型,是數據結構管理模塊,管理數據實體對象,以及輸入與輸出數據結構定義。

model中的do是領域對象,用於dao數據操作中業務模型與實例模型轉換,由工具維護,用戶不能修改。

model中的entity是數據模型,數據模型是模型與數據集合的一對一關系,由工具維護,用戶不能修改。

在這裡插入圖片描述

首先,我們通過gf init 項目名 -u,來新建一個項目,然後我們在mysql中設計好表結構,在hack/config.yaml裡面配置好數據庫的參數,通過 gf gen dao生成模型,生成的模型位置在dao/do/model下面。

我們繼續定義接收和返回結構體,實現api層。接收結構體一般放在api/request下,返回結構體一般放在api/response/下面,也有分前後端目錄的,視個人而異。

我們在cmd中註冊Goods相關的路由,我們發現註冊路由時,controller.Goods飄紅,原因是我們還沒有編寫這個方法,我們需要通過編寫logic層實現業務邏輯,通過配置goland插件,自動生成service代碼。經測試我發現:在編寫logic邏輯後,就自動在service層生成瞭對應的goods文件和方法,非常方便。我們要在service層生成RegisterXX()方法後,在對應的業務模塊中加上接口的實現註入。

小提示:該方法每個業務模塊加一次即可。 建議大傢在編寫完第一個logic方法後(或者說service層生成瞭RegisterXX方法後): 就在logic層的init函數中實現服務的註冊; 然後去查看logic.go文件是否添加瞭相關的依賴,沒有的話也可以手動添加一下;

我們查看logic目錄下的logic.go文件,發現已經自動添加瞭我們本次編寫的goods相關的import,這個文件的作用是:將接口的具體實現,在程序啟動時執行註冊。 咱們回過頭來,繼續編寫controller層的代碼,例如:我們參考官方提供的controller/user.go 實現瞭我們自己的 controller/goods.go的添加商品方法:

註意事項

  1. 生產環境配置文件位置:hack/config.yaml
  2. 發佈後的配置文件路徑是:manifest/config/config.yaml
  3. 需要在main.go 聲明和導入使用的數據庫
  4. mysql運行go get -u http://github.com/gogf/gf/contrib/drivers/mysql/v2
  5. 使用瞭internal目錄,進行瞭約束。除瞭對外暴露接口的方法放在api目錄,其他不需要對外的邏輯都要放在internal中

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部