docker搭建开发接口工具--Yapi
Yapi旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护API。本文将讲述如何通过docker私有化部署Yapi服务端。
特点
- 可视化的接口管理
- 具备完整的权限管理体系
- 支持直接mock数据,同时mock支持高级mock定制
- 支持导入 swagger, postman, har 数据格式,方便迁移旧项目
- 支持自动化测试
- 支持LPAD登陆
为什么不选择ApiFox
可以说ApiFox的功能更加丰富全面,但是Ypai功能也已经够用。重点在于,ApiFox免费版必须联网使用,一些公司内网环境下无法连接,而私有化部署需要付费。Yapi项目开源可以私有化部署,免费使用。所以如果你的开发环境不能连接公网并且公司想节约这方面的成本,Yapi是个不错的选择!
官方地址
docker部署
本文采用docker方式进行部署,镜像为作者根据官网指南构建,docker镜像地址。 由于Yapi需要一个MongoDb服务支持,所以需要先起一个mongo容器,数据库不希望被其他应用访问,本文使用了docker自定义桥接网络。 以下开始使用docker-cli方式部署,读者也可以选择自己编写docker compose文件启动。
- 创建自定义桥接网络
sh
docker network create yapi
- 创建mongoDb容器
sh
docker run -d \
--name yapi-db \
--network yapi \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=mongo管理密码 \
mongo:3
注意:这里使用的是mongo:3的镜像,请不要升级mongo版本,作者踩过坑了!
- 进入mongoDb容器,创建yapi用户
sh
docker exec -it yapi-db bash
容器内:
sh
mongo
--------------------------------------------------
use admin
db.auth('root', 'mongo管理密码')
use yapi
db.createUser({
user: 'yapi',
pwd: 'yapi用户密码',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
exit
exit
注意此处两个密码,root应该与环境变量中的MONGO_INITDB_ROOT_PASSWORD相同,而yapi用户的密码应该与后面用到的配置文件密码相同。 默认配置文件密码为sadfasfafdasf,如果不自定义配置文件请将yapi用户密码设置为相同的sadfasfafdasf,否则启动报错。
- 创建yapi容器,初始化数据库
sh
docker run -d
--name yapi \
--network yapi \
-p 3000:3000 \
laoyutang/yapi:latest \
npm run install-server
此处执行了npm run install-server,让yapi初始化mongo。
- 初始化完成后,删除容器,重新创建即可。
sh
docker rm -f yapi
docker run -d \
--name yapi \
--network yapi \
-p 3000:3000 \
laoyutang/yapi:latest
此时访问Ip:3000已经可以访问项目了!跟着教程快速上手吧。
需要自定义配置文件的看这里
sh
-v 配置文件路径:/config.json
默认配置文件如下:
json
{
"port": "3000",
"adminAccount": "[email protected]",
"timeout": 120000,
"db": {
"servername": "yapi-db",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "sadfasfafdasf",
"authSource": ""
}
}
具体的字段含义请参考官方文档,可以配置LPAD登陆、邮箱、禁止注册、通知等等功能。