官网:https://hellosean1025.github.io/yapi/
目录
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
特性
- 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
- 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
- 类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
- 支持 postman, har, swagger 数据导入
- 免费开源,内网部署,信息再也不怕泄露了
2. 内网部署
2.1 环境要求
- nodejs(7.6+)
- mongodb(2.6+)
2.1.1 安装nodejs
# 安装nodejs apt install nodejs # 安装npm apt install npm # 镜像npm,安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org
2.1.2 安装mongodb
MongoDB 源码下载地址:https://www.mongodb.com/download-center#community
这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。
# 下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
# 解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
# 将解压包拷贝到指定目录
mv mongodb-src-r4.2.8 /usr/local/mongodb
# MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
export PATH=/usr/local/mongodb4/bin:$PATH
# 创建数据库目录
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
# 启动 Mongodb 服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
验证mongo安装
root@daicytest01:~# cd /usr/local/mongodb4/bin/
root@daicytest01:/usr/local/mongodb4/bin# ./mongo
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
2.2 可视化部署
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
按需求填写,写好后,点击开始部署,项目即可正常部署完成。
部署完成后,如果需要修改端口号,可进入配置文件修改。
配置文件路径:$(部署目录)/config.json
{
"port": "4000",
"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": "*****"
}
}
}
2.3 启动YApi
node vendors/server/app.js
root@daicytest01:/usr/local/my-yapi# node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:4000/
log: mongodb load success...
此时,会提示服务已启动,这是可以访问 ip:4000即可打开网站,并登录。
默认内置管理员账号:admin@admin.com 密码:ymfe.org
但这样运行有一个问题,node服务不能退出,一旦关闭连接终端,或者Ctrl C执行其他的命令时,服务就会停止。
所以需要用后台执行node命令,使node持续运行。
2.4 forever运行app.js
2.4.1 forever简介
forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
// 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具
forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程。
2.4.2 forever安装和使用
全局安装
cnpm install forever -g
常用命令
启动相关
// 1. 简单的启动
forever start app.js
// 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
forever start -l forever.log app.js
// 3. 指定app.js中的日志信息和错误日志输出文件,
// -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log app.js
// 4. 追加日志,forever默认是不能覆盖上次的启动日志,
// 所以如果第二次启动不加-a,则会不让运行
forever start -l forever.log -a app.js
// 5. 监听当前文件夹下的所有文件改动,并重启服务
forever start -w app.js
// 6. 显示所有运行的服务
forever list
停止操作
// 1. 停止所有运行的node App
forever stopall
// 2. 停止其中一个node App
forever stop app.js
// 当然还可以这样
// forever list 找到对应的id,然后:
forever stop [id]
重启操作
// 1. 启动所有
forever restartall
// 2. 重启其中一个node App
forever restart app.js
2.4.3 以forever启动yapi
# 启动yapi
root@daicytest01:/usr/local/my-yapi# forever start vendors/server/app.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: vendors/server/app.js
# 查看启动列表
root@daicytest01:/usr/local/my-yapi# forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] fyr6 /usr/bin/node vendors/server/app.js 1163506 1163513 /root/.forever/fyr6.log 0:0:0:18.709
3. 效果预览