這幾天終於完成了爲期三個月的公司某個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)
一樣仍是踩了很多坑