最強開源接口管理平臺YApi搭建教程

YApi 簡介

YApi 是去哪兒網開源的一個高效易用功能強大的 API 管理平臺,它擁有接口管理,接口調試,接口測試,Mock 等等一系列特性,而且支持導入和自動同步swagger文檔,能夠直接將現有的全部項目swagger文檔無縫遷移到 YApi 上統一管理,真的是不講武德!前端

官方已經部署了一套公有服務進行演示,直接訪問https://yapi.baidu.com便可快速體驗。node

部署

這裏介紹兩種部署方式,一種是基於docker一鍵部署,還有一種是基於命令行手動部署,固然我強烈建議使用docker進行部署,不然容易碰到一些環境相關的問題。git

基於 docker 部署

1.建立網橋

建立一個網橋讓 yapi 容器能訪問到 mongoDB 容器,命令以下:github

docker network create yapi

2.部署 mongoDB

基於 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_USERNAMEMONGO_INITDB_ROOT_PASSWORD環境變量來設置數據庫訪問的帳號密碼,在下面部署 yapi 時要用到。docker

3.部署 yapi

經過上一步部署的 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 的方式安裝,如今介紹下基於命令行的方式進行安裝。瀏覽器

1.安裝 mongoDB

經過 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

2.安裝 node.js 環境

注意不要安裝過高版本的 node,不然可能會致使部分依賴下載失敗,我測試 node10 版本是沒問題的,直接去官網https://nodejs.org/dist/latest-v10.x,下載對應的 node 版本安裝便可。

安裝好以後運行如下命令來驗證是否正確安裝:

node -v

正常的話會輸出v10.x.x對應版本號,接着就能夠開始安裝 yapi 了。

3.安裝 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,歡迎掃碼👇👇關注!不按期在公衆號中分享 JAVAGolang前端dockerk8s等乾貨知識。

wechat

相關文章
相關標籤/搜索