YApi
介紹:旨在為開發、產品、測試人員提供更優雅的接口管理服務。可以幫助開發者輕松創建、發布、維護 API
前言
在考慮多方面因素下,選擇了YApi作為前后端API溝通的管理服務,簡單說說原因,在API設計方面,考慮過很多,有以下幾個:
-
Swagger
-
Postman+Coding
-
ApiPost
-
Rap2
但是這些都有着一些讓我無法忍受的問題,以下都是個人想法,也可能是我沒有找到對應問題的解決辦法。
-
Swagger是通過在代碼中寫注釋或者引入文件來自動生成API文檔,要去學習Swagger的文檔語言,不是可視化的操作。
-
Postman是API接口設計測試神器,但是他們的API文檔只能通過網頁來保存與查看,並且他們的response不支持參數的注釋介紹,也就是只有返回結果,但是不能自定義每個返回參數的含義,除非單獨在json結果中添加注釋。
-
ApiPost是國人開發的,功能和PostMan很類似,是我使用最久的,雖然軟件內還有一些小問題,但是對於Postman以上兩點有極大的改善,不僅文檔能導出Markdown和word,並且response的結果可以自動導出鍵值對並且對其進行注釋。不過在使用了幾個月后讓我放棄的原因就是安全問題,他們的隱私政策中並未提到是如何保存我的接口數據的,並且我如果要生成文檔,就一定要分享接口或者目錄,這個分享鏈接默認是開放的,類似於Postman的publish document,但是Postman可以只在團隊中分享,並且分享是很嚴格需要確定的,然而ApiPost的分享只要點擊一下,我的這個接口就開放了,我如果沒有及時關閉,我甚至都找不到我以往分享了哪一些接口,其實這些不能算是嚴格的安全問題,最重要的是ApiPost團隊可以不經過我的允許查看我的所有接口數據(這是親身實踐確定,這一點就說明了我在他們的數據庫數據完全是未加密的,因為我習慣在設計API時也將設計文檔寫在一起方便查看,但如果是明文數據,那么我還是很排斥的,所以在這之后我就選擇了大團隊或開源軟件以保證我數據的安全性)
-
Rap2界面難受
YApi解決了postman的問題,而且開源可以內網部署,暫時是我完美的選擇方案。
環境要求
-
nodejs(7.6+)
-
mongodb(2.6+)
服務器系統
- Ubuntu 18.04.4
安裝環境
- nodejs安裝
sudo apt install nodejs
sudo apt install npm
// 這里注意這樣下載的node版本很可能是非常古老的,需要更新為最新的版本
// 首先查看版本(可以和node官網比對一下版本號,最好是LTS穩定版本)
node -v
// 如果版本太老,就需要安裝n模塊來更新node
npm install -g n
// 安裝版本二選一
// 安裝穩定版本
n stable
// 安裝最新版本
n latest
// npm升級
npm install npm -g
// 如果要指定版本,可以通過@指定版本
npm install npm@3.10.10 -g
// 注意,此處的node與npm的版本還需調用-v查看,如果仍然為舊版本就是環境變量路徑問題
需要調用
path="$path"
解決
-
安裝mongodb(該流程完全按照官方文檔走)
- 官方鏈接:
Install MongoDB Community Edition on Ubuntu — MongoDB Manual
- Import the public key used by the package management system,導入公鑰
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Create a list file for MongoDB,建文件夾
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Reload local package database,更新apt
sudo apt-get update
- Install the MongoDB packages,開始安裝mongo
sudo apt-get install -y mongodb-org
// To prevent unintended upgrades
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
- Follow these steps to run MongoDB Community Edition on your system,一些mongo命令
- Start MongoDB,開啟mongo服務
sudo systemctl start mongod
- Verify that MongoDB has started successfully,查看mongo狀態
sudo systemctl status mongod
- Stop MongoDB,關閉mongo
sudo systemctl stop mongod
- Restart MongoDB,重啟mongo
sudo systemctl restart mongod
- Begin using MongoDB,命令行使用mongo
mongo
安裝YApi
- 可視化部署
// 該命令需要root權限,並且時間會有點長
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
// 之后根據提示訪問地址通過網頁配置
- PM2守護服務進程
- PM2官方文檔
npm install pm2@latest -g
// 進入安裝好的my-yapi文件夾,依次進入my-yapi/vendors/server,然后執行
pm2 start app.js