Linux下搭建YApi运行环境-强大的可视化接口管理平台

前言

项目开发中,接口文档的管理一直是一个痛点,这次,把项目中使用的YApi接口管理平台的运行环境部署,作一个简单总结。

1 什么是YApi ?

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

平台结构大致如下:
在这里插入图片描述

YApi特性:

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

2 部署YApi环境前的准备工作

环境要求

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

2.1 Node.js环境配置

笔者这里直接使用已编译好的包进行安装,因为Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用:

  • https://nodejs.org/en/download/下载需要的的Nodejs版本

  • 下载node
    wget https://nodejs.org/dist/v12.18.3/node-v12.18.3.tar.gz

  • 解压node压缩文件
    tar vf node-v12.18.3.tar.gz -C /usr/local

  • 修改node解压后的目录名称
    mv node-v12.18.3-linux-x64 node-v12.18.3

  • 进入node安装目录
    cd node-v12.18.3

  • 执行node命令查看node版本
    ./bin/node -v

  • 解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln命令来设置软连接,设置软连接后即可使用node命令:
    ln -s /usr/local/node-12.18.3/bin/npm /usr/local/bin/
    ln -s /usr/local/node-12.18.3/bin/node /usr/local/bin/

至此,node环境即部署完成。

注意: 虽然官方建议使用源码的方式安装node,但是新版的node要求:
C++ compiler (CXX=g++, 4.8.5) too old, need g++ 6.3.0 or clang++ 8.0.0
这个配置起来不如上面这种方式方便,所以推荐上面那种编译好的包进行安装

2.2 MongoDB环境配置

这部分内容,可以参考我另一篇博文进行配置:https://blog.csdn.net/smilehappiness/article/details/108111657

2.2.1 为admin库添加root用户

use admin;
db.createUser({user:"root", pwd:"123456", roles:[{role:"dbAdminAnyDatabase", db:"admin"}]});

笔者这里以admin库为例,安装配置的yapi

2.2.2 添加yapi专用数据库

  • 创建一个集合
    db.createCollection("yapi");
    此时还没有数据库,如果再创建了集合并添加数据后,就会有数据库,可以查到添加的yapi数据库(show dbs

  • 向monggodb yapi库中插入数据
    db.yapi.insert({name:”zhangsan”, age : 100}); 其中db是固定的写法,yapi`是集合的名称,也可以理解为表

  • 创建用户
    use yapi;
    db.createUser({user:"yapi", pwd:"123456", roles:[{role:"dbAdmin", db:"yapi"}]});

这个童鞋们可以试试,应该是一样的,为了保险,建议使用admin库操作

3 安装YApi环境

基础环境node和mongodb准备好了之后,开始搭建YApi环境:

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

  • 安装yapi-cli工具
    npm install -g yapi-cli --registry https://registry.npm.taobao.org
  • 启动可视化部署程序
    yapi server

搭建过程详细步骤:

3.1 -bash: yapi: 未找到命令

输入yapi server命令后,可能会提示:
-bash: yapi: 未找到命令

找不到命令这个报错要看上一条命令中yapi的位置,他都会告诉你的进去以后执行命令:

[root@local]# npm install -g yapi-cli --registry https://registry.npm.taobao.org
npm WARN deprecated bson@1.0.9: Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see https://bit.ly/2KcpXdo for more details
/usr/local/node-12.18.3/bin/yapi -> /usr/local/node-12.18.3/lib/node_modules/yapi-cli/bin/yapi-cli
/usr/local/node-12.18.3/bin/yapi-cli -> /usr/local/node-12.18.3/lib/node_modules/yapi-cli/bin/yapi-cli
+ yapi-cli@1.5.0
updated 1 package in 6.001s

3.2 启动可视化部署程序

进入目录:
cd /usr/local/node-12.18.3/bin

然后执行./yapi server 启动可视化部署程序

3.3 配置YApi服务

在浏览器打开 http://0.0.0.0:9090 访问。如果非本地服务器,请将0.0.0.0 替换成指定的域名或ip

访问到部署首页:
在这里插入图片描述

【部署中】
在这里插入图片描述
出现以下内容,说明部署成功:

部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:9090 即可访问首页(如果非本地服务器,请将0.0.0.0 替换成指定的域名或ip)

3.4 访问Yapi首页

进入部署目录:
cd /usr/local/node-12.18.3/bin/my-yapi/
执行以下命令:
node vendors/server/app.js

会出现以下内容:

[root@my-yapi]# node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问: 
http://127.0.0.1:3000/
log: mongodb load success...

输入http://127.0.0.1:3000/,即可访问到Yapi首页,如下图所示:
在这里插入图片描述
输入管理员账号,登录即可看到以下界面:
在这里插入图片描述

4 YApi服务器管理

为了更好地管理node服务,推荐使用 pm2 管理 node 服务器启动、停止。

4.1 安装pm2

  • 安装pm2
    npm install pm2 -g

  • 设置软链接:
    ln -s /usr/local/node-12.18.3/bin/pm2 /usr/local/bin/

    有时候,安装后直接使用pm2,提示命令不存在,这时候就需要设置软链接
    笔者安装时,有以下内容提示信息:

    /usr/local/node-12.18.3/bin/pm2 -> /usr/local/node-12.18.3/lib/node_modules/pm2/bin/pm2
    /usr/local/node-12.18.3/bin/pm2-dev -> /usr/local/node-12.18.3/lib/node_modules/pm2/bin/pm2-dev
    /usr/local/node-12.18.3/bin/pm2-docker -> /usr/local/node-12.18.3/lib/node_modules/pm2/bin/pm2-docker
    /usr/local/node-12.18.3/bin/pm2-runtime -> /usr/local/node-12.18.3/lib/node_modules/pm2/bin/pm2-runtime
    

4.2 使用pm2管理yapi服务

  • cd {yapi安装目录}

  • 启动yapi服务
    pm2 start "vendors/server/app.js" --name yapi

  • 查看服务信息
    pm2 info yapi

  • 停止服务
    pm2 stop yapi

  • 重启服务
    pm2 restart yapi

4.3 pm2常用命令示例

pm2常用命令如下:

  • 启动进程/应用 pm2 start bin/wwwpm2 start app.js
  • 重命名进程/应用 pm2 start app.js --name wb123
  • 添加进程/应用 watch pm2 start bin/www --watch
  • 结束进程/应用 pm2 stop www
  • 结束所有进程/应用 pm2 stop all
  • 删除进程/应用 pm2 delete www
  • 删除所有进程/应用 pm2 delete all
  • 列出所有进程/应用 pm2 list
  • 查看某个进程/应用具体情况 pm2 describe www
  • 查看进程/应用的资源消耗情况 pm2 monit
  • 查看pm2的日志 pm2 logs
  • 若要查看某个进程/应用的日志,使用 pm2 logs www
  • 重新启动进程/应用 pm2 restart www
  • 重新启动所有进程/应用 pm2 restart all

注意: 在要守护的项目进程目录下运行,按需要选择(一般就用到很少的几个命令),不能照搬哈,否则后果自负

如果需要更详细的了解pm2如何使用,可参考下面的教程:

5 升级YApi项目版本

升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。
大致需要以下几个步骤:

  • 进入Yapi安装目录
    cd {项目目录}

  • 查看版本号列表
    yapi ls

  • 升级到最新版本
    yapi update

  • 升级到指定版本
    yapi update -v v1.1.0

6 配置通知邮箱

如果想开启邮件通知功能,需要配置mail邮箱,如何配置呢?

其实配置邮件通知很简单,打开项目目录下config.json配置文件,新增 mail 配置, 替换默认的邮箱配置,把mail项相关内容修改一下即可

【example】

{
  "port": "*****",
  "adminAccount": "********",
  "db": {...},

  //自定义配置(qq邮箱)
  "mail": {
    "enable": true, //开启邮箱通知功能
    "host": "smtp.qq.com",    //邮箱服务器
    "port": 465,               //端口
    "from": "******@qq.com",     //发送人邮箱
    "auth": {
        "user": "******@qq.com", //邮箱服务器账号
        "pass": "******授权码******"        //邮箱服务器密码
    }
  }
}

注意: config.json中不要添加注释,上面内容中的注释需要去掉,不然启动不起来

如何申请STMP服务器账号和密码可以参考我另一篇博文教程:如何开通电子邮箱的SMTP功能

7 总结

传统的文档,一般都是使用word,或者使用markdown编写,然后把接口文档发给测试人员、发给项目经理、领导等等,这样有一个弊端:当接口文档更新后,还需要重新发送一次,效率很低

为了解决这一问题 ,强大的 Yapi 可视化接口管理平台就出现了。可以有效地管理接口等文档,实现测试、开发等接口的统一,从而可以大大提高接口沟通的效率。

参考资料:
https://www.runoob.com/nodejs/nodejs-install-setup.html
https://gitee.com/mirrors/YApi

好啦,本篇就介绍到这里了,如果这篇文章对你有帮助,欢迎老铁们给个赞支持下呗!

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家评论,一起探讨,代码如有问题,欢迎各位大神指正!

给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值