YAPI (Yet Another Programming Interface) 是一种开源的 API 管理工具,可以帮助开发人员创建、测试和文档化 RESTful API。
本文将记录 YAPI 的本地部署方法,以下操作均在Linux环境下进行
bashdocker run -it -p 3000:3000 -p 9090:9090 --name yapi centos bash
bashcd /opt
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz # 下载压缩包
tar -zxvf mongodb-linux-x86_64-4.0.10.tgz # 解压
mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb # 移动
ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod # 软链接,全局变量
ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo # 软链接,全局变量
cd / && mkdir data && cd data && mkdir db # mongodb默认存放位置,需提前创建
bash# 下面两个安装方式,任选其一就行
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc
nvm --version # 可查看nvm版本,说明安装成功
nvm install v12.16.1 # 安装node的稳定版本(npm会同步当前版本的node)
bashnpm install -g pm2
bashnpm install -g yapi-cli --registry https://registry.npm.taobao.org
bashnohup mongod &
mondo # 查看mongod是否正常启动
bashcd /
yapi server
打开 http://127.0.0.1:9090按照提示进行安装
报错:
Error: (node:689) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
1.删除目录下的init.lock
2.更改配置文件
bashvi vendors/server/utils/db.js
修改db.js,在19行下面加上
mongoose.set('useUnifiedTopology', true);
3.删除db文件夹
bashrm -rf /data/db
cd /data
mkdir db # 重新创建db文件夹
mkdir log # 创建log文件夹,后续会用到
nohup mongod & # 重启mongodb服务
4.开启yapi服务
bashcd /my-yapi/vendors/
npm run install-server # 启动服务端进程
# 初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org" 则成功,否则继续查看问题
npm run start # 启动yapi服务
# log: 服务已启动,请打开下面链接访问:
# http://127.0.0.1:3000
创建脚本
bashvi /my-yapi/start.sh
在start.sh加入下面内容:
bash#!/bin/bash
source ~/.bashrc # (或者尝试source /etc/profile)
mongod --fork --dbpath=/data/db --logpath=/data/log/mongo.log --logappend
pm2 start ./vendors/server/app.js
tail -f /dev/null
脚本运行
bashchmod 777 ./start.sh
./start.sh # 查看脚本是否正常运行
如果登录功能无法运行,检查mongodb是否正常开启
bashdocker stop yapi # 暂停容器
docker commit yapi docker/yapi # 将yapi容器打包成docker/yapi镜像
FROM docker/yapi WORKDIR /my-yapi ENTRYPOINT ["./start.sh"]
以 /dockerFile/yapi/下的Dockfile为配置创建镜像,镜像名为docker.privete/yapi
bashdocker build -t docker.privete/yapi /dockerFile/yapi/
bashdocker rm yapi # 删除原先的容器
docker run -itd -p 3000:3000 -p 9090:9090 --restart=always --name yapi docker.privete/yapi bash
通过exec方式进入容器,如果出现Can't contact LDAP server (-1),重启容器尝试
bashdocker stop ldap docker start ldap
bashdocker exec -it yapi /bin/bash # 进入容器
config.json 初始化配置
yaml{
"port": "3000",
"adminAccount": "admin@admin.com",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
},
}
修改的部分
yaml# LDAP 配置
"ldapLogin": {
"enable": true,
"server": "ldap://129.211.61.3",
"searchDn": "ou=People,dc=myhqq,dc=cn",
"searchStandard": "uid"
},
# 邮箱配置
"mail": {
"enable": true,
"host": "smtp.qq.com", # 邮箱服务器
"port": 587, # 端口
"from": "284942955@qq.com", # 发送人邮箱
"auth": {
"user": "284942955@qq.com", # 邮箱服务器账号
"pass": "txderowwhgxmbihb" # 邮箱服务器密码
}
},
# 禁止注册
"closeRegister":true
最终版本
yaml{
"port": "3000",
"adminAccount": "admin@admin.com",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": true,
"host": "smtp.qq.com",
"port": 587,
"from": "284942955@qq.com",
"auth": {
"user": "284942955@qq.com",
"pass": "txderowwhgxmbihb"
}
},
"ldapLogin": {
"enable": true,
"server": "ldap://129.211.61.3",
"searchDn": "ou=People,dc=myhqq,dc=cn",
"searchStandard": "uid"
},
"closeRegister":true
}
更多配置,参考
项目owner 主要有创建该项目的人、项目中的组长、创建分组的人、分组中的组长
owner 权限判断的优先级是 项目权限 > 分组权限
分组 owner 主要有创建分组的人、分组中的组长
owner 权限判断的优先级是 项目权限 > 分组权限
本文作者:BARM
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!