可視化接口管理平臺 YApi,讓你輕松搞定 API 的管理問題


作者:xcbeyond
瘋狂源自夢想,技術(shù)成就輝煌!微信公眾號:《程序猿技術(shù)大咖》號主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗,樂于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項目的研發(fā)工作,涉及架構(gòu)設(shè)計、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對于Java、微服務(wù)、數(shù)據(jù)庫、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗。


隨著開發(fā)的推進,各種各樣的文檔會接踵而來,比如:需求文檔、架構(gòu)文檔、接口文檔等等,我們通過 SVN、Git 等可以很方便的管理,面對需求的不斷變化,我們需要不斷的對各類文檔進行維護。但在開發(fā)階段,針對接口文檔而言,其具有不確定性、難維護、難測試等特點,接口的管理往往成為了難題。

今天我們帶著 API 接口管理的問題,一起來看看一款可視化接口管理平臺 YApi,讓能輕松幫助我們搞定 API 的管理問題。
YApi 介紹

YApi 是高效、易用、功能強大的 API 管理平臺,旨在為開發(fā)、產(chǎn)品、測試人員提供更優(yōu)雅的接口管理服務(wù)??梢詭椭_發(fā)者輕松創(chuàng)建、發(fā)布、維護 API,YApi 還為用戶提供了優(yōu)秀的交互體驗,開發(fā)人員只需利用平臺提供的接口數(shù)據(jù)寫入工具以及簡單的點擊操作就可以實現(xiàn)接口的管理。

在開始之前,可以先體驗一把,體驗地址:https://yapi.baidu.com
特性

可視化接口管理,基于 Websocket 的多人協(xié)作接口編輯功能和類 Postman 測試工具,讓多人協(xié)作成倍提升開發(fā)效率。
扁平化權(quán)限設(shè)計,即保證了大型企業(yè)級項目的管理,又保證了易用性。
自動化測試, 完善的接口自動化測試,保證數(shù)據(jù)的正確性,并支持對 Response 斷言。
Mock Server,易用的 Mock Server,方便 Mock 數(shù)據(jù)的生成。除支持普通的隨機 Mock 外,還增加了 Mock 期望功能,根據(jù)設(shè)置的請求過濾規(guī)則,返回期望數(shù)據(jù)。
數(shù)據(jù)導(dǎo)入導(dǎo)出,支持導(dǎo)入 Swagger, Postman, HAR 數(shù)據(jù)格式,導(dǎo)出 HTML, Markdown, JSON 數(shù)據(jù)格式, 方便 API 接口文檔的遷移及歸檔。
插件機制,強大的插件機制,滿足各類業(yè)務(wù)需求,便于擴展對接等。
基于 JSON5 和 Mockjs 定義接口返回數(shù)據(jù)的結(jié)構(gòu)和文檔,效率提升多倍。
免費開源,支持二次開發(fā),內(nèi)網(wǎng)部署,信息安全可靠。

誰在用

去哪兒
攜程
藝龍
美團
百度
騰訊
阿里巴巴
京東
今日頭條
唯品支付
鏈家網(wǎng)
快手
便利蜂
中商惠民
新浪
VIPKID
馬蜂窩

認(rèn)識 YApi

在開始使用 YApi 之前,我們先來熟悉一下 YApi 的網(wǎng)站結(jié)構(gòu),這將讓你快速了解YApi。

登錄與注冊:

想要使用 YApi ,首先要注冊賬號。

在這里插入圖片描述




















首頁:

登錄后進入首頁,首頁展示了分組與項目。

此時你作為新用戶,沒有任何分組與項目的權(quán)限,因此只能搜索、瀏覽 “公開項目” 的接口,如果在首頁找不到任何項目,請聯(lián)系管理員將你加入對應(yīng)項目。

首頁頭部展示了當(dāng)前所在的位置、搜索框、新建項目、查看文檔和用戶信息。

首頁左側(cè)展示分組信息,“分組”是“項目”的集合,只有超級管理員可以管理分組。

首頁右側(cè)是分組下的項目和成員列表,點擊左側(cè)的某個分組,右側(cè)會出現(xiàn)該分組下的項目和成員信息。

點擊項目右上角的星星即可關(guān)注項目,關(guān)注的項目可以在“我的關(guān)注”頁面查看。

在這里插入圖片描述

項目頁:

點擊一個項目,進入項目頁,項目頁展示了屬于該項目的全部接口,并提供項目、接口的全部操作。

此時你作為新用戶,只能瀏覽接口信息,不可以編輯項目或接口,如果需要編輯,請聯(lián)系管理員將你加入該項目。

項目頁左側(cè)的 “接口列表” 展示了該項目下的所有接口,右側(cè)默認(rèn)顯示該項目下所有接口的列表。

點擊左側(cè)的某個接口,右側(cè)會出現(xiàn)“預(yù)覽”、“編輯”和“運行”。

點擊左側(cè)的 “測試集合” 使用測試集功能。

點擊二級導(dǎo)航的“設(shè)置”,項目組長即可編輯項目信息和管理成員列表。

點擊二級導(dǎo)航的“動態(tài)”,即可查看項目的操作日志。

在這里插入圖片描述






個人中心:

鼠標(biāo)移動到右上角的用戶頭像或用戶名上,即可點擊“個人中心”查看個人信息。

個人中心












在個人信息頁面可以查看并修改自己的用戶名、密碼等信息。

個人設(shè)置

YApi 操作手冊

可直接參考官方教程。
部署

在決定使用 YApi 后,首先會考慮如何部署。雖說官方提供了詳細(xì)的部署文檔,但一頓操作下來卻踩了不少坑,卻被難倒了門外。在此,結(jié)合官方提供的部署教程,自己基于docker-compose、Kubernetes等方式提供了一鍵離線安裝 YApi,更加的方便。
官方部署教程(推薦可視化部署)

可直接參考官方教程,除了部署本身之外,通過該教程讓我們進一步了解到 YApi 的一些細(xì)節(jié)問題,如:依賴什么、配置什么等,這也為我接下來 Docker 部署提供了參考。
Docker 在線/離線部署(個人推薦)

在有網(wǎng)絡(luò)的條件下,可直接通過可視化部署(yapi-cli 工具)是非常簡單的,但在內(nèi)網(wǎng)(無外網(wǎng))下,卻無能為力。因此,特制作 Docker 鏡像,可通過 docker-compose 或 Kubernetes 等方式一鍵部署 YApi。

鏡像制作

這部分主要講述鏡像的制作過程,docker 鏡像已推送至 docker hub,直接拉取,無需自己動手制作鏡像。

config.json: YApi 配置文件,可按需修改打入到鏡像。

commons.js:解決 YApi bug 問題。

克隆本項目代碼到本地

git clone https://github.com/xcbeyond/deploy-scripts.git

構(gòu)建鏡像

    # 切換到 yapi 目錄
    cd yapi
    # 需要花費一點時間
    docker build -t xcbeyond/yapi:1.9.2 .

推送鏡像

docker push xcbeyond/yapi:1.9.2

一鍵部署

支持通過 docker-compose 和 Kubernetes 兩種方式一鍵部署。

docker 鏡像 tar 包獲取

有外網(wǎng)時,可忽略該操作。
  • 1

如果在離線(無外網(wǎng))情況下,需事先準(zhǔn)備好 docker 鏡像tar包。

在能正常連接外網(wǎng)的 docker 環(huán)境下,拉取鏡像 xcbeyond/yapi。

docker pull xcbeyond/yapi:1.9.2

生成 docker 鏡像 tar 包。

docker save -o yapi-1.9.2.tar xcbeyond/yapi:1.9.2

將鏡像 tar 包 yapi-1.9.2.tar 上傳將要部署的環(huán)境上。

導(dǎo)入鏡像 tar 包。

docker load < yapi-1.9.2.tar

docker-compose 部署

將 docker-compose 文件 /yaip/docker-compose.yaml 上傳至部署環(huán)境上,執(zhí)行 docker-compose 命令 docker-compose up -d 完成部署即可。

瀏覽器訪問地址 http://<部署環(huán)境IP>:3000,可用超級管理員登錄或直接注冊新賬號。

超級管理員:admin@admin.com、ymfe.org,登錄后建議修改密碼。

Kubernetes 部署

將 Kubernetes 部署資源文件上傳至部署環(huán)境上,分別通過命令 kubectl apply -f 執(zhí)行文件 mongodb.yaml 和 yapi.yaml 完成部署即可。

kubectl apply -f mongodb.yaml
# 等待 mongodb 啟動成功后,再執(zhí)行 yapi
kubectl apply -f yapi.yaml

注:先啟動 mongodb、再啟動 yapi。

瀏覽器訪問地址 http://<部署環(huán)境IP>:30300,可用超級管理員登錄或直接注冊新賬號。

超級管理員:admin@admin.com、ymfe.org,登錄后建議修改密碼。

參考資料:

https://hellosean1025.github.io/yapi/

https://github.com/xcbeyond/deploy-scripts/tree/master/yapi