YApi 是去哪兒網開源的一個高效
、易用
、功能強大
的 API 管理平臺,它擁有接口管理,接口調試,接口測試,Mock 等等一系列特性,而且支持導入和自動同步swagger
文檔,能夠直接將現有的全部項目swagger
文檔無縫遷移到 YApi 上統一管理,真的是不講武德!前端
官方已經部署了一套公有服務進行演示,直接訪問https://yapi.baidu.com便可快速體驗。node
這裏介紹兩種部署方式,一種是基於docker
一鍵部署,還有一種是基於命令行
手動部署,固然我強烈建議使用docker
進行部署,不然容易碰到一些環境相關的問題。git
建立一個網橋讓 yapi 容器能訪問到 mongoDB 容器,命令以下:github
docker network create yapi
基於 docker 部署很是簡單,只須要一行命令就搞定,以下:mongodb
docker run -d --name=mongo \ --network=yapi \ -e MONGO_INITDB_ROOT_USERNAME=root \ -e MONGO_INITDB_ROOT_PASSWORD=123456 \ mongo:3.6.21-xenial
這裏關鍵的點就是經過MONGO_INITDB_ROOT_USERNAME
和MONGO_INITDB_ROOT_PASSWORD
環境變量來設置數據庫訪問的帳號密碼,在下面部署 yapi 時要用到。docker
經過上一步部署的 mongoDB 帳號密碼進行部署,以下:數據庫
docker run -d --name yapi \ --network=yapi \ -e DB_SERVERNAME=mongo \ -e DB_DATABASE=admin \ -e DB_PORT=27017 \ -e DB_USER=root \ -e DB_PASS=123456 \ -p 3000:3000 \ liwei2633/yapi
部署成功的話經過瀏覽器訪問http://127.0.0.1:3000
應該就能夠看到如下界面:
npm
而後使用默認管理員帳號密碼:admin@admin.com
+ymfe.org
登陸就能使用了。api
這裏的鏡像是我本身構建上傳的,詳細能夠參考: basic/README.md。
而後還提供了一個支持gitlab登陸
的鏡像,若是有須要的能夠參考: gitlab/README.md
上面介紹了基於 docker 的方式安裝,如今介紹下基於命令行的方式進行安裝。瀏覽器
經過 mongoDB 官網的教程,根據本身的操做系統進行安裝便可,地址:https://docs.mongodb.com/v3.6/administration/install-community
因爲 mongoDB 默認是無需身份驗證的,不太安全,因此要建立一個用戶用於訪問數據庫,命令以下:
use admin db.createUser( { user: "root", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
這樣建立好了一個用戶,帳號密碼爲:root
+123456
注意不要安裝過高版本的 node,不然可能會致使部分依賴下載失敗,我測試 node10 版本是沒問題的,直接去官網https://nodejs.org/dist/latest-v10.x
,下載對應的 node 版本安裝便可。
安裝好以後運行如下命令來驗證是否正確安裝:
node -v
正常的話會輸出v10.x.x
對應版本號,接着就能夠開始安裝 yapi 了。
選好一個安裝目錄,在目錄下打開終端執行命令:
npm install -g yapi-cli --registry https://registry.npm.taobao.org yapi server
運行成功以後終端會提示訪問地址,經過瀏覽器訪問http://127.0.0.1:9090
進行安裝,如圖:
填寫好對應的配置信息,而後點擊開始部署,接着等待一段時間就部署完成了,而後按ctrl+c退出。
再根據安裝提示在終端中啓動 yapi 服務:
cd <部署路徑> node vendors/server/app.js
啓動成功後就能夠訪問了。
YApi 使用在咱們團隊使用了一段時間,體驗仍是很是不錯的,可是很惋惜的是這個項目目前基本屬於無人維護的狀態,最近的一次commit
仍是在2020年10月
,若是碰到坑的話就不要期望官方來修復了,只能靠本身,前幾天給官方提了個PR到如今也還沒回復,但願官方能把項目再運營起來吧~
我是 MonkeyWie,歡迎掃碼👇👇關注!不按期在公衆號中分享JAVA
、Golang
、前端
、docker
、k8s
等乾貨知識。