使用 Beego 搭建 Restful API 項目
1 環境准備
首先你需要在你的環境安裝以下軟件:
- go:編程語言運行環境
- git:版本控制工具
- beego:go 語言流行的開發框架
- bee:beego 配套的快速搭建工具
- 你喜歡的數據庫:這里以 Mysql 為例
1.1 go
注意:安裝完 go 后,一定要手動配置好 $GOPATH。bee 可執行文件默認存放在 $GOPATH/bin 里面,所以您還需要把 $GOPATH/bin 添加到您的環境變量中。
1.2 git
1.3 beego
使用如下命令安裝:
go get github.com/astaxie/beego
1.4 bee
使用如下命令安裝:
go get github.com/ranqiwu/bee
注:未使用官方生成工具,官方的不能使用go mod,GetAll方法未返回總條數
1.5 數據庫
使用Mysql5.7,使用8.0時報異常
2 使用bee工具
bee 是 beego 框架自帶配套的高效工具。
2.1 生成項目目錄結構
如果你只是想搭建一個 api 服務,不帶前端網頁開發,可以使用如下命令:
bee api YOUR_PROJECT_NAME
就這樣一個簡單的命令,一個項目雛形就搭好了。
如果你的8080端口被占用了,可以修改 conf/app.conf 文件調整端口號。如下所示,把端口調整到9000:
目錄結構如下:
myproject
├── conf
│ └── app.conf
├── controllers
│ └── default.go
├── main.go
├── models
├── routers
│ └── router.go
├── static
│ ├── css
│ ├── img
│ └── js
├── tests
│ └── default_test.go
└── views
└── index.tpl
8 directories, 4 files
2.2 連接數據庫生成代碼
你是不是想過生成目錄結構之后,需要自己手動編寫 model 和 controller。這里可以負責任的告訴你:常規的 CRUD 完全不需要你手動編寫一行代碼。以 mysql為例,只需運行如下命令即可:
bee api MyGoApi -tables="" -driver=mysql -conn="root:12345@tcp(127.0.0.1:3306)/company?charset=utf8"
使用go mod管理包文件,使其項目可以脫離go path路徑
數據庫驅動器需要你事先手動獲取,命令如下:
go get github.com/go-sql-driver/mysql
2.3 生成Swagger文檔
其實文檔的大部分工作不論是在示例代碼還是生成代碼都已經給做了(留意控制器代碼上的注釋),你只需要修改下相應配置即可。在 beego 1.7+ 版本,只需要在 conf/app.conf 打開如下開關:
做完之后,使用如下的命令跑你的項目:
bee run -gendoc=true -downdoc=true
- -gendoc=true 表示每次自動化的 build 文檔
- -downdoc=true 就會自動的下載 swagger 文檔查看器
bee run時下載依賴包可能被牆,配置環境變量