YApi是一个高效、易用、功能强大的API管理平台,开源支持内网搭建,是公司搭建自己的接口管理平台的最佳选择。
传统搭建方法需要准备nodejs、mongoDB,也不是很麻烦,大概一个小时就能搞定,可以参考文末参考文献中的步骤。但是之前我们已经介绍过了Docker,官方DockerHub上还真有相应的镜像仓库,而且我们公司的硬件资源全部已经容器化,所以使用容器来部署内网的YApi最为合适了。整个过程只要10分钟就能完成了。
YApi使用的是MongoDB,因此我们需要先准备好数据库。
# 拉取mongodb的最新镜像
docker pull mongo:latest
# 创建自定义网络
# --driver bridge 使用bridge类型的网络驱动
# --subnet 192.168.0.0/16 指定子网范围
# --gateway 192.168.0.1 指定网关地址
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
# 启动容器
# -d 后台启动
# --name mongodb 指定容器名称
# --restart always 自动重启
# --net mynet 使用如上创建的自定义网络
# -p 2701:2701 指定端口映射
# -v E:\docker-volume\yapi:/data/db 挂载数据卷
# -e MONGO_INITDB_DATABASE=yapi 指定初始化数据库的名称
# -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root 指定数据库ROOT账密
docker run -d --name mongodb --restart always --net mynet -p 2701:2701 -v E:\docker-volume\yapi\mongo:/data/db -e MONGO_INITDB_DATABASE=yapi -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root mongo
这里强调的是一定要使用数据卷挂载,即使容器不小心被别人删除了,我们也能轻易恢复已经存在的项目接口信息。
然后我们需要创建好YApi使用的数据库,并新建一个给YApi应用使用的数据库账号。
# 进入mongodb cli命令行
mongo localhost:27017
# 切换到admin数据库
use admin;
# 使用root用户登录,账密为启动MondoDB数据库容器时指定的
db.auth("root", "root");
# 创建yapi数据库
use yapi;
# 创建给 yapi应用使用的账号和密码,限制权限
db.createUser({
user: 'yapi',
pwd: 'yapi123456',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
exit
如此,数据库的配置就完成了。
YApi的主要配置都在config.json中,配置的内容也比较简单。
{
"port": "3000",
"adminAccount": "[email protected]", // 管理员的登录账号
"timeout":120000,
"db": {
"servername": "mongodb", // mongodb的容器名称,因为使用了自定义网络,可以直接通过容器名称进行通信
"DATABASE": "yapi", // 指定使用的数据库名称
"port": 27017,// mongodb在宿主机上的端口
"user": "yapi", // 上述创建的账户名
"pass": "yapi123456",// 上述创建的账户密码
"authSource": ""
},
"mail": {
"enable": false, // 下面指定邮件通知使用的发信账号信息,可以自行配置
"host": "smtp.qq.com",
"port": 465,
"from": "*",
"auth": {
"user": "[email protected]",
"pass": "***"
}
}
}
同样的,我们需要使用数据卷,将YApi的配置进行备份。
docker pull yapipro/yapi:latest
docker run -d --name yapi-config --net mynet -v E:\docker-volume\yapi\yapi\config.json:/yapi/config.json yapipro/yapi server/install.js
我们可以查看下容器的启动日志,确保配置成功。
log: mongodb load success...
初始化管理员账号成功,账号名:"[email protected]",密码:"ymfe.org"
如上日志说明配置成功,但是账户密码并不是日志中打印的那个,下面会说。
此时就完成了YApi应用需要的数据库集合的初始化操作。
此时就可以执行最后一步安装YApi的应用了。
docker run -d --name yapi-app --restart always --net mynet -p 3000:3000 -v E:\docker-volume\yapi\yapi\config.json:/yapi/config.json yapipro/yapi server/app.js
查看启动日志内容如下:
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
提示使用http://127.0.0.1:3000/访问,就可以发现成功了,使用默认密码yapi.pro就可以登录管理员账户了。下一篇文章会具体介绍YApi核心功能的使用。