这几天终于完成了为期三个月的公司某个demo版的项目,在这期间和公司的后台由于API的事怼过无数次了,'个人接口没问题,是你请求的方式不对吧!'、'必定是你请求的参数不对'......诸如此类问题贯穿这三个月,仅仅由于咱们没有一个良好的接口管理习惯,一堆省事的工具没有被利用起来,接口定义很随意基本靠口头传达。因而乎,我想YApi接口管理平台必须先用起来,再者,张鑫旭大大也在为接口管理打call,前端也应该把工具用起来。解放生产力,提升效率!html
由于yapi的安装必须依赖node,centos环境安装node的各类方法google一下,千千万万种。而我仍是踩到坑了,不知道为何我根据wget安装源码的方法,失败了,固然也不是彻底失败,是make的时候,等的过久,我直接ctrl+c了。仍是用nvm安装吧,尽管我也不知道合不合理。请代码说话:前端
Wget下载安装nvmnode
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
或者Curlgit
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
下载完成后加入系统环境github
source ~/.bashrc
验证安装mongodb
command -v nvm
查看远程node版本数据库
nvm ls-remote
安装所需版本 要求nodejs(7.6+)express
nvm install 10.2.1
yapi依赖mongodb(2.6+,理论上可配置远程的mlab,此处安装centos的mongdb,前提是确保centos为64位。
一样安装方法也有千千万万种,这里用yum安装npm
修改yum包管理配置json
vi /etc/yum.repos.d/mongodb-org-3.4.repo // 会自动新建mongodb-org-3.4.repo文件
复制下面配置信息:
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=0 enabled=1
安装mongodb
yum install -y mongodb-org // 一路yes安装mongodb
修改mongdb配置(公网可访问:127.0.0.1 => 0.0.0.0)
vi /etc/mongod.conf
启动mongodb
systemctl start mongod.service // 启动mongodb
此时若是是阿里云服务器,安全组添加端口12071就能经过公网地址访问,固然此时是不安全的
此时任何一我的都能经过链接你的mongdb数据篡改你的数据,这时候试着加下验证试试,这里方法也有千千万万种,请自行google,例如:
mongo --port 27017 use admin db.createUser( { user: "adminUser", pwd: "adminPass", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
## 部署yapi
根据官方文档,部署方法有两种,鉴于我前几天在电脑上用第一种方法安装时失败,因而就采用第二种复杂一点的方法
mkdir yapi cd yapi git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录 cp vendors/config_example.json ./config.json //复制完成后请修改相关配置 cd vendors npm install --production --registry https://registry.npm.taobao.org npm run install-server //安装程序会初始化数据库索引和管理员帐号,管理员帐号名可在 config.json 配置 node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
此时只是暂时成功部署了,还要永久守护这个yapi进程,这里用到pm2
安装pm2
npm i pm2 -g
切换到yapi的vendors目录 执行pm2 start
pm2 start server/app.js --watch
正常的话,应该能正常访问到,默认接口是3000
至此,已经把yapi的源代码clone了一份到你本身的内网,固然,期间仍是会遇到很多的坑,我遇到的主要仍是mongdb认证的坑:好比认证设置不成功、config文件配置不正确之类的,甚至pm2启动yapi失败,总之多尝试多动手,本身实在不能解决再去请教大牛。
解决: 检查mongdb配置是否正确、认证设置是否成功,yapi的config文件是否配置正确
解决:经过pm2 log查看是以前经过npm开启的服务没有结束,致使端口占用,ctrl+c以前的服务就行
前两个问题貌似都不算是坑,无非就是拦路虎
解决:那确定是邮箱配置不对喽,重来吧!而后就继续采坑
不肯定是否是网易邮箱有点问题仍是怎么的,换成qq的就行,修改完config.json文件,我觉得重npm run install-server就万事大吉了,其实 -->
应该是mongdb中yapi已经存在这个管理员的信息,若是admin下面没有数据的话就直接删掉这条,若是有点话就修改数据吧。我很懒,直接用mongdb compass把整个yapi都删掉了,删库跑路!
虽然对小白来讲https然并卵,我仍是想捣鼓一下试着经过https来访问个人yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的觉得还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,因而乎把https的端口设定成了8443。大概步骤以下:
修改app.js 是基于koa的 不过我没有再引用koa-ssl,直接用的node的https方法的第一种
// 引入相关的服务和文件 const fs = require('fs'); const https = require('https'); const options = { key: fs.readFileSync(__dirname + '/server.key'), cert: fs.readFileSync(__dirname + '/server.pem') }; const port = 8443; //... //开启https端口 https.createServer(options, app.callback()).listen(port)
一样仍是踩了很多坑