Beego+MySQL搭建 Restful API 项目及API文档自动化

安装Beego数据库驱动

先搭建好Go和Beego开发环境,如果没搭建的,可以参考这篇:从零开始搭建Go-Beego开发环境

接下来就安装数据库驱动了,其实很简单。依次在终端执行下面命令即可:(可能有点慢,可参照上面链接优化)

1
2
cd $GOPATH/src
go get -u -v github.com/go-sql-driver/mysql

创建数据库及数据表(MySQL)

这个不解释了,直接执行我发的sql文件即可,或者自行创建。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE DATABASE model;
USE model;

DROP TABLE IF EXISTS `app`;
CREATE TABLE `app` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`create_date` datetime NOT NULL,
`app_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`app_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`publish_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `app_code` (`app_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of app
-- ----------------------------
INSERT INTO `app` VALUES ('1', NOW(), '100000', '神庙逃亡', '2015-08-06');
INSERT INTO `app` VALUES ('2', NOW(), '100001', '愤怒的小鸟', '2015-08-06');

创建Restful API项目及根据数据库自动生成常规的CRUD

你是不是想过生成目录结构之后,需要自己手动编写 model 和 controller。这里可以负责任的告诉你:常规的 CRUD 完全不需要你手动编写一行代码。直接一行命令即可,如下:

1
2
/* -conn="数据库用户名:密码@tcp(127.0.0.1:3306)/数据库名" */
bee api test-api -conn="root:123456@tcp(127.0.0.1:3306)/model"

运行项目并API文档自动化生成

其实文档的大部分工作不论是在示例代码还是生成代码都已经给做了(留意控制器代码上的注释)。使用如下命令可以运行并每次都自动完全生成你的Restful Api 项目文档:

1
2
3
cd ./test-api
bee generate docs
bee run -gendoc=true -downdoc=true
  • -gendoc=true 表示每次自动化的 build 文档
  • -downdoc=true 就会自动的下载 swagger 文档查看器
  1. 然后就可以访问:http://localhost:8080/swagger/ 来查看了。也可以使用GoLand打开项目观察一下生成的代码了。
  2. 关于如何在控制器中编写相应的 Swagger 文档注释,可参考 API自动化文档
  3. 有点美中不足的是,生成 api 地址都是单数形式,比如 /article,而 Restful API 最佳实践是复数形式。如果你介意的话,不妨手动修改下 /routers/router.go 文件。

最后一点

其实,使用上面自动生成的代码,可能会有一些缺陷,比如,可能外键关系无法体现,即表和表之间的对应关系无法生成等等问题,但是,单个表的CURD都生成了,没生成的再改不就行了吗,起码很省时间,也不影响代码质量什么的。(个人愚见,我也是小白嘛)

通过上面的练习,以及观察一下项目的代码。可以较好的理解了什么是 Restful风格的API ,以及看一下 https://beego.me/docs/quickstart/ 这一节,就大概知道怎么使用 Go+Beego 开发Api项目了。

接下来进入学习Go的语法知识,查看本人 学习Go的笔记 了,Beego的官方教程已经很好了,我就不献丑了

-------------本文结束感谢您的阅读-------------