部署yapi
安装 MongoDB
- 下载镜像
docker search mongo
docker pull mongo
- 启动容器
docker run -itd \
--network bridge \
--name mongo \
-p 27017:27017 \
-v /data:/root/yapi/mongo \
-e MONGO_INITDB_DATABASE=yapi \
-e MONGO_INITDB_ROOT_USERNAME=yapipro \
-e MONGO_INITDB_ROOT_PASSWORD=xxx \
mongo --auth
- 进入容器
docker exec -it mongo mongo admin
报错
OCI runtime exec failed: exec failed: unable to start container process: exec: "mongo": executable file not found in $PATH: unknown
原因
mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!
修改为
docker exec -it mongo mongosh admin
- 创建账号密码
admin 库db.createUser({ user:'mongo',pwd:'xxx',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
非 admin 库
对于非 admin 库,不能拥有 clusterAdmin、readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 这些角色
MongoDB 目前内置了 7 个角色。
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root;这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
这些角色对应的作用如下:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
db.createUser({ user:'yapipro',pwd:'xxx',roles:[ { role:'dbAdmin', db: 'yapi'},"dbAdmin"]});
尝试连接数据库
db.auth('mongo', 'xxxx')
安装 yapi
- 下载镜像
docker search yapi
docker pull yapipro/yapi
- 添加配置文件
{
"port": "3008",
"adminAccount": "xxxx@gmail.com",
"timeout":120000,
"db": {
"servername": "172.18.0.7",
"DATABASE": "yapi",
"port": 27017,
"user": "xxx",
"pass": "xxxxxxx",
"authSource": "admin"
},
"mail": {
"enable": true,
"host": "smtp.qq.com",
"port": 465,
"from": "xxx@qq.com",
"auth": {
"user": "xxx@qq.com.com",
"pass": "xxxx"
}
}
}
- 初始化数据库表
docker run -itd \
--name yapi-init \
--network bridge \
-v /root/yapi/yapi.config.json:/yapi/config.json \
yapipro/yapi \
server/install.js
初始化管理员账号在上面的 config.json 配置中 adminAccount 的数据,初始密码是 yapi.pro,可以登录后进入个人中心修改
执行成功后显示 初始化管理员账号成功,账号名:"xxx@gmail.com",密码:"ymfe.org"
- 启动yapi
docker run -d \
--name yapi \
--restart always \
--network bridge \
-p 3008:3008 \
-v /root/yapi/yapi.config.json:/yapi/config.json \
yapipro/yapi \
server/app.js
- 验证是否启动成功
curl localhost:3008
yapi的使用
安装 easy-api 的idea插件
设置 -> Plugins
设置 yapi 服务路径
进入yapi项目
找到项目的 token
首次上传文档
直接选中项目,上传信息
此处填入yapi项目中的token数据 此token可以调用很多接口,不能暴露出去
后续更新文档
选中项目的controller文件,更新/上传文档
yapi使用
可以配置环境,参数,以及保存自测接口,保存数据在 测试集合 中
安装和使用插件
需要安装 cross-request 插件
本地调试
点击插件的 背景页 开启调试模式(和浏览器的开发控制台一样)
easy-api使用文档
文档:https://easyyapi.com/documents/index.html
validation分组支持: https://easyyapi.com/framwork/javax_validation.html
最后编辑:admin 更新时间:2024-05-14 10:08