概述

YApi 是高效易用功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

img

特性

  • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
  • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
  • 类似 postman 的接口调试
  • 自动化测试, 支持对 Response 断言
  • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
  • 支持 postman、har、swagger 数据导入
  • 免费开源,内网部署,信息再也不怕泄露了

环境准备

环境要求:

  • nodejs(7.6+)
  • mongodb(2.6+)
  • git

安装git和nodejs

1
2
3
4
5
yum -y install epel-release
yum -y install nodejs git openssl-devel
npm config set registry https://registry.npm.taobao.org
npm install -g n
n lts

重新登录shell后,查看node版本:

1
2
[root@yapi ~]# node -v
v12.18.1

MongoDB创建DB和相关用户

使用可视化工具创建db,db名为yapi,并创建该db的管理员用户。

image-20200629162914419

部署

可视化方式安装

使用我们提供的yapi-cli 工具,部署 YApi 平台是非常容易的。执行yapi server启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行node /{网站路径/server/app.js}启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码为 ymfe.org登录系统(默认密码可在个人中心修改)。

1
2
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server

登录http://主机ip:9090,填写相关配置

image-20200629162301657

服务管理

利用pm2方便服务管理维护。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装pm2
npm install pm2 -g
cd /usr/local/yapi
# pm2管理yapi服务
pm2 start "vendors/server/app.js" --name yapi
# 查看服务信息
pm2 info yapi
# 停止服务
pm2 stop yapi
# 重启服务
pm2 restart yapi
# 开机自启
pm2 startup
systemctl enable pm2-root
systemctl restart pm2-root

登录

浏览器打开http://主机ip:3000,输入管理员账号和密码,默认登录密码为ymfe.org

image-20200629163107168

升级

升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。

1
2
3
4
5
6
7
cd /usr/local/yapi
# 查看版本号列表
yapi ls
# 更新到最新版本
yapi update
# 更新到指定版本
yapi update -v {Version}

权限控制

接口管理的逻辑较为复杂,操作频率高,层层审批将严重拖慢生产效率,因此传统的金字塔管理模式并不适用。

YApi 将扁平化管理模式的思想引入到产品的权限管理中,超级管理员 拥有最高的权限,并将权限分配给若干 组长超级管理员 只需管理组长 即可,实际上管理YAPI各大分组与项目的是“组长”。组长对分组或项目负责,一般由BU负责人/项目负责人担任。

创建分组

只有 超级管理员 有权限创建分组

img

权限列表

新用户未加入项目或分组时,我们称为 游客

项目权限

操作 游客 项目开发者 项目组长 超级管理员
浏览公开项目与接口
浏览私有项目与接口
编辑项目信息
新建接口
编辑接口
编辑项目头像
删除项目

分组权限

操作 游客 分组开发者 分组组长 超级管理员
浏览分组
在分组中新建项目
编辑分组信息
管理分组成员
删除分组

插件

钉钉推送

参考:yapi-plugin-dding

安装

1
2
3
cd /usr/local/yapi/
npm install ykit -g
yapi plugin --name yapi-plugin-dingding

修改配置文件

配置参考,servername需要配置主机IP。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"port": "3000",
"adminAccount": "xxx@xxx.com",
"db": {
"servername": "IP",
"DATABASE": "yapi",
"port": "27017",
"user": "yapi",
"pass": ""
},
"mail": {
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
},
"plugins": [
{
"name": "dingding",
"options": {
"host": "http://IP:3000"
}
}
]
}

重启yapi

1
pm2 restart yapi

配置钉钉机器人

在群组增加群助手,安全设置,配置宿主机所在的出口ip:

image-20200702094244673

创建完成后,复制webhook,再到yapi项目的设置中配置钉钉机器人

image-20200702092556186