docker搭建yapi接口文档系统、Idea中上传接口
启动mongo
docker run -d \
--name mongodb-yapi \
--restart always \
-p 27017:27017 \
-v /home/ouhou/yapi/data/mongo/:/data/db \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
mongo
进入容器初始化数据库
docker exec -it mongodb-yapi /bin/bash
# 进入容器后输入
mongosh
use admin;
# 验证用户名和密码
db.auth("admin", "admin");
# 创建 yapi 数据库
use yapi;
# 创建给 yapi 使用的账号和密码,分配管理、读写权限
db.createUser({
user: 'yapi',
pwd: 'yapi',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
exit
初始化yapi
初始化config.json
下面的端口号就是容器内部的端口号,不是映射到物理主机的端口号
{
"port": "9070",
"adminAccount": "cyl336018@163.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "yapi",
"authSource": ""
},
"mail": {
"enable": true,
"host": "smtp.163.com",
"port": 25,
"from": "cyl336018@163.com",
"auth": {
"user": "cyl336018@163.com",
"pass": "授权码"
}
}
}
docker run -d --rm \
--name yapi-init \
--link mongodb-yapi:mongo \
-v /home/ouhou/yapi/data/yapi/config.json:/yapi/config.json \
yapipro/yapi \
server/install.js
运行yapi
docker run -d \
--name yapi \
--link mongodb-yapi:mongo \
--restart always \
-p 9070:9070 \
-v /home/ouhou/yapi/data/yapi/config.json:/yapi/config.json \
yapipro/yapi \
server/app.js
登录yapi
正常默认的管理员用户名账号是在config.json中的adminAccount,但我不知道为啥,和这个不一样,可以直接去看本地映射的config.json文件,里面的adminAccount字段是正确的
密码就是yapi.pro
配置idea
安装插件
上传controller接口
选择完成后,填入token即可
补充:将用户更新为管理员
参考链接:http://www.glmapper.com/2022/05/25/api/api-yapi-change-user-role-by-mongo/
但是要记得先去认证用户,才能更改
# MongoDB 登录认证
db.auth("yapi", "yapi");
# 查找指定用户名的账户信息
db.getCollection("user").find({"username":"cyl"})
# 也可以使用邮箱来查找
# db.getCollection("user").find({"email":"cyl@qq.com"})
# 使用以下的语句更新指定用户的 role 为 admin,指定用户即可变成管理员用户
db.getCollection("user").update({"username":"cyl"}, {$set: {"role":"admin"}})
# 如果需要取消管理员权限,把 role 设置成 member 即可
# exit退出即可