YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
Server | install | version | port | 说明 |
---|---|---|---|---|
CentOS7.2(10.20.10.61) | MongoDB | 4.4.6 | 8090 | 数据存储 |
CentOS7.2(10.20.10.62) | YApi、nodejs、git | YApi:1.9.1 nodejs:14.15.4 git:2.22.4 |
YApi:3000 | API接口管理 |
当然,你也可以把 YApi、 MongoDB 部署在同一台服务器上。
1、下载相应资源包
点击【Download】下载到本地后再上传至服务器
或者点击【Copy Link】直接wget进行下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.6.tgz
2、解压
tar -xzf mongodb-linux-x86_64-rhel70-4.4.6.tgz -C /usr/local/
cd /usr/local/
mv mongodb-linux-x86_64-rhel70-4.4.6/ mongodb4.4.6
3、添加环境变量
vim /etc/profile
export PATH=/usr/local/mongodb4.4.6/bin:$PATH
source /etc/profile # 使环境变量生效
4、相关数据目录
mkdir -p /data/mongodb/{data,logs}
touch /data/mongodb/logs/mongodb.log
# data:数据目录
# logs:日志目录
5、修改配置文件
cd /usr/local/mongodb4.4.6
vim mongodb.conf
--------------------------------------
port=8090
bind_ip=0.0.0.0
dbpath=/data/mongodb/data
logpath=/data/mongodb/logs/mongodb.log
logappend=true
fork=true
# port:自定义端口
# bind_ip:允许远程IP连接
# dbpath:数据路径
# logpath:日志路径
# logappend:可追加日志
# fork:后台运行
6、配置systemctl管理
cd /usr/lib/systemd/system/
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb4.4.6/bin/mongod --config /usr/local/mongodb4.4.6/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb4.4.6/bin/mongod --shutdown --config /usr/local/mongodb4.4.6/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
7、启动
systemctl start mongodb.service
systemctl enable mongodb.service
8、登陆验证
mongo IP地址[:端口]
mongo 10.20.10.61:8090
1、创建数据库:YAPI数据存储
use <DATABASE_NAME> # 不存在则创建
db # 查看当前所在数据库
show dbs # 查看所有数据库
use yapi # 创建yapi数据库,用于存储数据
2、创建管理用户:MongoDB管理用户
use admin # 管理员需要在admin数据库下创建,所以我们需要切换到admin数据库。
db.system.users.find() # 查看admin中的用户
# 在MongoDB中可以使用db.createUser({用户信息})函数创建用户:
db.createUser({
user: "" ,
pwd: "" ,
customData: { <any information> },
roles: [
{ role: "" , db: "" } | "" ,
...
]
});
# 说明:
1)user:新建用户名。
2)pwd:新建用户密码。
3)customData:存放一些用户相关的自定义数据,该属性也可忽略。
4)roles:数组类型,配置用户的权限。
db.createUser({user:'root',pwd:'xxxxx',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
3、创建程序用户:YAPI连接用户(读写权限)
先use命令切换至yapi数据库。如果该库不存在,那么则会创建该数据库。
use yapi
db.createUser({user:'yapiuser',pwd:'xxxxx',roles:[{role:'readWrite',db:'yapi'}]})
至此,数据库、管理用户/密码(管理权限)、普通用户/密码(读写权限),接下来只需在 yapi 的配置文件(config.json
)配置好连接 MongoDB 的数据库名、数据库用户、数据库用户密码,一定一定要写对哦,否则是无法连接 MongoDB 数据库的。
其他:
1、MongoDB 权限
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
# 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
【说明】
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
2、用户认证
在默认的情况下MongoDB是不开启用户认证的。如果我们添加用户,那么需要开启用户认证机制。通过修改mongodb.conf配置文件,在文件中添加 auth=true 即可。
db.auth(‘用户名’,’密码’)
# 认证函数:返回1成功,0则失败
方式一:可视化部署
即 web UI 点点操作(本人不太喜欢这种操作,容易出错,不可控)
nodejs 环境
1、nodejs
tar xf node-v14.17.3-linux-x64.tar.xz -C /usr/local/
cd /usr/local/
mv node-v14.15.4-linux-x64 nodejs
vim /etc/profile
-------------------------------------------------------
export NODE_HOME=/usr/local/nodejs
export PATH=$PATH:$NODE_HOME/bin
-------------------------------------------------------
source /etc/profile
# 作用于YAPI源码(yapi需要NodeJs环境,进行编译部署)
2、YAPI
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server # 前台执行,点击下图【开始部署】时会在终端打出相关日志
浏览器访问 http://10.20.10.62:9090/
进行可视化部署
如果执行正常,则会返回相应的初始化账户
和密码
(但我的报错了)
报错:这里的报错尚未解决,已解决的小伙伴评论区留言。
方式二:源码编译部署
官网部署
nodejs 环境(安装在方式一已介绍)
1、git
tar xzf git-2.22.4.tar.gz -C /usr/local/
cd /usr/local/
mv git-2.22.4 git
vim /etc/profile
-----------------------------------------
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
-----------------------------------------
source /etc/profile
# 用于拉取YAPI源码
2、创建安装目录
mkdir -p /data/yapi/install_path
3、clone 源码
cd /data/yapi/install_path
git clone --depth=1 https://github.com/YMFE/yapi.git vendors
# --depth=1:克隆下包含最近一次commit的一个分支(而不是整个commit)
# vendors:clone github主目录当前的源码到vendors目录下(自动生成)
# 或者下载 zip 包解压到 vendors 目录
# git clone https://github.com/YMFE/yapi.git vendors 比较太,非常慢。
4、修改配置文件(连接数据库)
cd /data/yapi/install_path
cp ./vendors/config_example.json ./config.json
vim config.json # 看下图
5、install
cd /data/yapi/install_path/vendors
npm install --production --registry https://registry.npm.taobao.org
# which npm 看看路径
6、程序初始化
npm run install-server
# 初始化用户名/密码
7、启动 YAPI
npm install -g pm2
pm2 start /data/yapi/install_path/vendors/server/app.js
# 启动:pm2 start /data/yapi/install_path/vendors/server/app.js
# 关闭:pm2 stop /data/yapi/install_path/vendors/server/app.js
# node server/data/yapi/install_path/vendors/server/app.js 这也是一种启动方式,但是这种启动方式是前台启动,当你关闭ssh窗口的时候,程序也就随之关闭了,所以需要改为后台运行,这里可以使用pm2进行管理。
浏览器访问URL:http://10.20.10.62:3000/
可以正常登陆并创建和管理 api 数据,至此 YAPI 成功部署完成!!
1、配置文件config.json
2、No matching version found for xxx
在 npm install --production --registry https://registry.npm.taobao.org
时报错,具体如下。
npm ERR! code ETARGET
npm ERR! notarget No matching version found for [email protected].
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'vendors'
npm ERR! notarget
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-12-29T14_20_27_670Z-debug.log
解决方案
查看模块注册信息
npm view dif
安装上图红框对应的模块版本
npm install https://registry.npmjs.org/dify/-/dify-1.0.6.tgz
安装后再次执行 npm install --production --registry https://registry.npm.taobao.org
即可
什么是 yapi ?
即接口管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。
yapi 特点
高效性、易用性、免费开源。
yapi 安装注意点
nodejs环境;
两种安装方式,
可视化安装
和源码编译安装
;可视化安装容易出错,不灵活,建议源码安装;
git clone 源码时由于仓库数据较大,可添加–depth=1,来克隆下包含最近一次commit的一个分支。
什么是 MongoDB?
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 特点
面向文档存储;
安装简单 ;
扩展性强;
支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言;
支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
MongoDB 安装注意点
比较简单,基本上不会出错。
其他注意点
端口:如果是云服务器部署,记得开放端口;
防火墙:关闭firewalld
;
selinux:关闭SELINUX
。
<点击跳转至开头>