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

2023-05-16

文章目录

  • 前言
  • 1 什么是YApi ?
  • 2 部署YApi环境前的准备工作
    • 2.1 Node.js环境配置
    • 2.2 MongoDB环境配置
      • 2.2.1 为admin库添加root用户
      • 2.2.2 添加yapi专用数据库
  • 3 安装YApi环境
    • 3.1 -bash: yapi: 未找到命令
    • 3.2 启动可视化部署程序
    • 3.3 配置YApi服务
    • 3.4 访问Yapi首页
  • 4 YApi服务器管理
    • 4.1 安装pm2
    • 4.2 使用pm2管理yapi服务
    • 4.3 pm2常用命令示例
  • 5 升级YApi项目版本
  • 6 配置通知邮箱
  • 7 总结

前言

项目开发中,接口文档的管理一直是一个痛点,这次,把项目中使用的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如何使用,可参考下面的教程:

  • 官网教程
  • 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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • sklearn接口报错Input contains NaN, infinity or a value too large for dtype(‘float64‘)

    1 错误场景 某个包调用了sklearn接口 xff0c 在fit x y 时报错Input contains NaN infinity or a value too large for dtype 39 float64 39 2 错误原因
  • 在shell中执行conda activate报错:Your shell has not been properly configured to use ‘conda activate‘.

    今天想要在Mac上执行一段自动启动jupyter的shell脚本 xff0c 但是出现了错误 错误代码 xff1a CommandNotFoundError Your shell has not been properly configur
  • centos7安装CUDA11.2+CUDNN8.1+tensorflow2.4

    环境 xff1a 系统 xff1a centos7 CPU xff1a Intel R Xeon R Gold 5220 CPU 64 2 20GHz 36核 GPU xff1a Tesla V100 4 查看CPU信息 xff1a cat
  • 开源时序建模框架Kats

    KATS简介 时间序列分析建模是数据科学和机器学习的一个重要的领域 xff0c 在电子商务 金融 供应链管理 医学 气象 能源 天文等诸多领域有着广泛的应用 目前时间序列分析以及建模的技术非常多 xff0c 但相对散乱 Facebook开源
  • 包含动画的PPT转为PDF

    目的 xff1a 带动画的PPT转化为PDF xff0c PDF的每一页是动画的一个步骤 方法 xff1a 使用 宏 参考链接 xff1a https www codercto com a 70548 html 具体方法 xff08 win
  • windows中docker编写一个dockerfile文件

    Dockerfile文件描述了当我们启动镜像的时候需要哪些软件元素 除了软件元素之外 xff0c Dockerfile 还能够让我们能够在启动镜像的时候在容器中运行一些命令或者指明我们使用什么样的环境 使用虚拟机中的vim命令编写docke
  • spyder增加模块代码提示功能

    最近在配置tensorflow xff0c 可是发现使用spyder的时候无法加载tensorflow的代码提示 xff0c 需要自己输入完整的函数名称 xff0c 十分不方便 xff0c 于是从网上找了一些资料 xff0c 来解决spyd
  • conda activate报错:gbk相关错误

    使用conda create n 建立新的虚拟环境后 xff0c 使用activate无法进入虚拟环境 xff0c 报了一个和gbk相关的错误 xff0c 后来经排查发现 xff0c 是系统环境变量中包含中文字符 xff0c 把系统变量中所
  • scanf源码分析

    本文分析的是glibc2 31中的scanf相关源码 xff0c 目的不是研究scanf的算法 xff0c 而是说明scanf在IO attack中的利用方法 xff0c 属于CTF的范畴 scanf c 其实就是对 vscanf inte
  • windows建立定时任务执行bat脚本

    在Linux中我们可以通过crontab来定时执行脚本 xff0c 那么windows中如何执行呢 xff1f 为了避免分支冲突 xff0c 准备在每天上班的时候自动将git远程仓库的最新版本pull下来 xff0c 然后在下班时间自动将重
  • 需账号密码登陆的网页爬虫

    对于普通网页的爬取十分简单 xff0c 如果网站没有任何反爬机制 xff0c 只要以下代码就可以实现对于网页的爬取 span class token keyword import span requests html span class
  • sqlserver通过OPENJSON转换 json数据

    OPENJSON 行集函数可将 JSON 文本转换为一组行和列 使用 OPENJSON 将 JSON 集合转换为行集后 xff0c 可以在返回的数据上运行任意 SQL 查询或将其插入到 SQL Server 表中 OPENJSON 函数采用
  • [linux]armbian修改为清华源

    查看系统发行版本 命令lsb release a 本机为基于Debian的armbian buster 所以用清华Debian源 修改apt为清华软件源 备份原文件 sudo cp etc apt sources list etc apt
  • 基础的三角函数,反三角函数,双曲函数的图形绘制(matlab)

    matlab基本图形绘制 基础的三角函数 xff0c 反三角函数 xff0c 双曲函数的图形绘制 xff1b 在此过程 xff0c 可以熟悉基础的matlab指令 xff1b 三角函数 y1 61 sin x y2 61 cos x y3
  • tkinter实现带背景图片的登录窗口

    实现功能 xff1a 打开系统登录窗口 xff0c 输入用户名密码 xff0c 点击登录后跳转到程序主界面 xff0c 用户名密码在程序代码里 xff0c 注意运行时需要自己准备一张背景图片back png 主要代码 xff1a self
  • CCF 201809-3 2018年9月第三题元素选择器(python 100分题解)

    问题描述 试题编号 xff1a 3试题名称 xff1a 元素选择器时间限制 xff1a 10 0s内存限制 xff1a 512 0MB问题描述 xff1a 提交后100分代码 xff1a 注意标签选择器大小写不敏感 xff0c 匹配时都转成
  • GitHub项目徽章的添加和设置

    原文出处 xff1a https lpd ios github io 2017 05 03 GitHub Badge Introduction 许多同学在 GitHub 上发布了自己的开源项目 xff0c 有辛苦开发的实用工具 构思巧妙的开
  • 【C++】买鸡问题练手题

    C 43 43 买鸡问题 公鸡 5 元 1 只 xff0c 母鸡 3 元 1 只 xff0c 小鸡 1 元 3 只 xff0c 花了 100 元钱买 100 只鸡 xff0c 问公鸡 母鸡 小鸡各多少只 xff1f include lt i
  • 关于Vue中的axios数据异步 获取后,更改数据,页面没有更新

    更改axios数据后 xff0c 页面没有更新解决办法 列子解决 列子 span class token comment 页面视图HTML span span class token operator lt span span span c
  • C# ToString()方法一些特殊用法

    转帖 http hi baidu com crp8 blog item d19ab0cc131b8f1300e92869 html 一 取中文日期显示 1 年月日时分 currentTime ToString 34 f 34 不显示秒 2

随机推荐