使用 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时下载依赖包可能被墙,配置环境变量