API視覺化管理平臺YApi

Ryan.Miao發表於2020-10-11

Yapi是什麼

YApi 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,YApi 還為使用者提供了優秀的互動體驗,開發人員只需利用平臺提供的介面資料寫入工具以及簡單的點選操作就可以實現介面的管理。

我主要使用方式如下:

  • 專案整合swagger, 介面新增api註解
  • 匯出api-docs.json
  • YApi匯入api-docs.json

那麼,既然swagger有了為啥還要多做一步匯入YApi呢。因為YApi有更友好的檢視管理,結合測試,可以有效表現api定義和示例。

另外,有的專案無法對外提供swagger介面,受環境限制。swagger也不適合多個專案的api管理。

後端定義好api結構,然後匯入YApi, 在測試裡輸入樣例引數,直接丟給前端即可完全實現前後端分離,有效提高api對接聯調速度。

Yapi安裝

官方地址: https://github.com/YMFE/yapi/

也可以通過docker安裝 https://github.com/Ryan-Miao/docker-yapi

關於外掛:加入一些登入外掛,比如cas,需要編譯client, 執行

npm install && npm run build-client

這時候, 官方原始碼會報錯,主要是babel外掛和eslink錯誤。見 https://github.com/YMFE/yapi/pull/1937

賬號管理和許可權

可以配置郵箱註冊字尾,只允許公司內部使用者郵箱註冊。 也可以接入sso外掛,接入公司的LDAP或者SSO,CAS等, 統一管理使用者。

與Swagger整合

與swagger整合有兩種方式, 一種是手動匯入api-docs.json, 這種方式適用於yapi和api服務網路不通,只能手動維護的情況。

另一個就是線上自動同步,只要填入swagger的地址就可以了。

我們匯入swagger官方示例: https://petstore.swagger.io/v2/swagger.json

檢視介面定義

根據swagger定義的引數和返回值物件,yapi對應都有解析到。

執行介面

點選執行, 和swagger postman一樣,可以直接執行介面。

這裡有個問題,前後端分離後,介面鑑權通常是通過header傳遞token實現的。官方預設實現沒有提供自定義header的功能。還有yapi架構設計很好,開源,有很多外掛可以參考。

比如: https://github.com/shouldnotappearcalm/yapi-plugin-interface-oauth2-token

具體用法見: https://blog.csdn.net/shouldnotappearcalm/article/details/104726505

儲存執行結果

剛才執行的介面點選儲存,我們的引數就儲存下來了。後面直接告訴前端同學地址,他可以通過測試用例來呼叫api。

測試用例

yapi相比swagger另一個比較好的功能就是測試和mock。先不說mock,就說測試api,後端開發好api後, 還要告訴前端怎麼呼叫。有時候, 資料庫的資料有限,還要告訴前端哪些引數可用,可以跳通。這些可以通過yapi執行介面後儲存為測試例項來完成。

相關文章