从零开始搭建Yapi环境
2020-11-21 本文已影响0人
Mracale
前言
Yapi是去哪儿网开源的一款接口管理工具。接口的文档的管理是一件比较痛苦的事情,后端开发不得不使用很长的时间去维护繁杂冗余的文档,而前端开发也因为文档的不精确也浪费开发时间。
工作中接口返回的参数值包含很多的异常场景,前端不得不写一大串的判断逻辑。配合前段调试需要模拟很多场景,比较费时费力,而且很多场景到了项目后期才能调试,在提交测试时时间就会显得很紧张。
总结起来文档式的接口管理方式浪费心里和时间,Aapi这款工具的旨意将接口作为一个公共的可视化的方式打通前段、后台、测试环节,整合在一块,共同使用维护,降低接口的维护成本。
这款工具免费开源,部署简单,还具有官方文档。
环境准备
- 操作系统:centos 7
-
环境要求:
- nodejs>7.6
- mongodb>2.6
- git
安装nodejs
- 获取资源(部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。)
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
- 安装
yum install -y nodejs
- 查看版本
node -v
- 查看npm版本
npm -v
安装mongodb
- 更新yum源,非必须但是更新一下无害
yum -y update
- 添加mongodb源文件,在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
touch /etc/yum.repos.d/mongodb-org.repo
- 编辑mongodb-org.repo文件
vim /etc/yum.repos.d/mongodb-org.repo
- 添加文件内容
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
- 安装mongodb
yum install -y mongodb-org
- 启动mongodb
service mongod start
- 设置开机启动
chkconfig mongod on
- 打开moMongoDB(可忽略)
/bin/mongo
- 配置远程访问
- 修改mongod.conf配置文件
vim /etc/mongod.conf
- 注释 bindIp: 127.0.0.1
#bindIp: 127.0.0.1
- 重启mongod
service mongod restart
安装git
- 官方推荐,在内网部署的时候安装git,可以根据自己所需安装
yum -y install git
搭建YApi环境
搭建YApi
- 准备环境搭建完成后,开始搭建YApi,安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
-
实例截图:
image
- 执行 yapi server 启动可视化部署程序,浏览器打开提示窗口上的地址,非本地服务器,将0.0.0.0替换指定的域名或IP,进入部署页面。
-
实例截图
image
- 根据项目实际需要可以修改部署信息,点击【开始部署】,完成部署任务
-
部署成功截图
image
4.根据部署日志截图上的提示信息,启动服务
启动服务:node vendors/server/app.js
如果启动失败,请查看是否在yapi的安装目录中,cd /root/my-yapi
浏览器打开部署日志上的访问地址http://127.0.0.1:3000就可以访问搭建的YApi工具了(非本地服务器,将127.0.0.1替换指定的域名或IP),此时YApi环境搭建完成
相关文档:
查看Centos端口命令:
# netstat -lntp #查看监听(Listen)的端口
# netstat -antp #查看所有建立的TCP连接
后台守护进程运行:
nohup node vendors/server/app.js &
成功部署Yapi后,在没有守护进程之前存在一些问题:
应用程序运行在当前终端发起的子shell中,hangup信号中断后会导致应用退出,我们不可能在长期使用的环境中用一个终端去做长连接。
当服务器重启后,还是需要人工连上服务器启动服务。
进程出现意外终止,等人为发现再连上去开启,这样的反应显然已经慢了。
我们这里使用pm2,方法很简单:
npm install pm2 -g
pm2 start vendors/server/app.js