YApi
Yapi是去哪儿网开源的一款接口管理工具。接口的文档的管理是一件比较痛苦的事情,后端开发不得不使用很长的时间去维护繁杂冗余的文档,而前端开发也因为文档的不精确也浪费开发时间。Yapi旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API
背景
在前后端分工合作的项目中,会出现一种尴尬局面。在项目进入研发阶段初期,前端和后端人员约定api接口,请求参数,返回参数。往往两端人员都在纠结模拟数据应该由谁来负责,但无论谁负责也好,必然会对项目产生一些冗余的代码或文件。而YApi正好为我们解决了这个大问题。
官网
环境准备
- 操作系统:centos 7
- 环境要求:
- nodejs>7.6
- mongodb>2.6
- git
安装nodejs
1、获取资源:
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
2、安装
yum install -y nodejs
3、版本查看
node -v
4、npm版本查看
npm -v
安装mongodb
1、更新yum源 如果不需要也可以不用更新,会有很多下载
yum -y update
2、添加mongodb源文件,在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
touch /etc/yum.repos.d/mongodb-org.repo
3、编辑mongodb-org.repo文件
vim /etc/yum.repos.d/mongodb-org.repo
4、添加文件内容
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
5、安装mongodb
yum install -y mongodb-org
6、修改mongod.conf配置文件
注释 bindIp: 127.0.0.1(如果数据库只本地访问不需要修改)
7、启动mongodb
service mongod start
service mongod restart // 重启
8、设置开机启动
chkconfig mongod on
安装git
yum -y install git
搭建YApi环境
1、安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org
2、运行服务
yapi server
3、开发云服务器的9090端口,在服务器上对防火墙配置9090端口
浏览器打开地址:
点击开始部署。
4、完成部署
5、关闭云服务器和防火墙开放的9090端口,并开放3000端口
此时只是暂时成功部署了,还要永久守护这个yapi进程,这里用到pm2
-
安装pm2
npm i pm2 -g
-
切换到yapi的vendors目录 执行pm2 start cd /root/my-yapi/vendors/
pm2 start server/app.js --watch
遇到的问题
1、运行服务的指令
yapi server
这个指令运行部署的时候有可能没有权限,用sudo
(node:23147) UnhandledPromiseRejectionWarning: Error: Request failed with status code 504
at createError (/usr/lib/node_modules/yapi-cli/node_modules/axios/lib/core/createError.js:16:15)
at settle (/usr/lib/node_modules/yapi-cli/node_modules/axios/lib/core/settle.js:18:12)
at IncomingMessage.handleStreamEnd (/usr/lib/node_modules/yapi-cli/node_modules/axios/lib/adapters/http.js:191:11)
at emitNone (events.js:111:20)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickCallback (internal/process/next_tick.js:181:9)
(node:23147) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:23147) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
sudo yapi server
2、开始部署的时候如果勾选了数据库认证是表示数据库连接时要验证的用户名密码