Swagger功能簡介


周末抽了點時間把Swagger看了一下,這里寫篇文章小結一下。Swagger的官網上有一個在線的demo,可以在線體驗。我們也可以下載其源碼,執行dist\index.html文件,即可得到和官網一樣功能的demo,不需要架設服務器就能使用。

    

從網絡請求中查看,發現它請求了一個名為swagger.json的文件。    

    

而這個json文件里面定義的基本就是文檔的schema。從這個頁面我們基本上可以發現swagger的原理了:

  1. swagger依賴一個基於openapi規范的json文檔,它定義了接口schema。
  2. 頁面加載后,會獲取指定的接口的schema,然后生成接口頁面。
  3. 點擊執行后,會通過瀏覽器發送ajax請求,然后將結果呈現在界面上,從而實現接口測試。

簡單的來講,swagger接口測試是一個純前端的實現,不需要后台支持。它就是一個在線版的postman,實際上,postman也支持openapi規范,通過導入scheme后,也可以實現一樣的功能。不過,和postman相比,swagger具有如下優勢:

  1. 不需要本地客戶端
  2. 可以和應用集成,不需要手動導入接口定義
  3. 通過瀏覽器發送的ajax請求,往往可自動基礎了用戶的身份信息,測試帶權限控制的接口非常方便。

在.net core中,要將swaggerui和站點集成,需要進行如下幾步:

  1. 根據ApiExplore生成接口文檔內容
  2. 注冊路由,提供接口文檔的下載地址
  3. 將swaggerui頁面集成到站點中
  4. 將路由路徑設置到swagger頁面中

簡單的來講就兩步,提供接口文檔下載url和集成swaggerui。當前.net core已經有了一些開源實現,如:swashbucklenswag。對於大多數的場景來說,直接使用它們是非常方便的。

然而,有的時候我們是需要一些高級的功能的,如分布式的服務需要提供一個集中的api頁面,或者需要對頁面進行一些定制(如分組,權限控制,樣式調整等)。雖然這些庫也提供了一定的支持,但往往不夠靈活。一個簡單的方案是:只利用這些庫來生成swagger接口文檔swagger.json,在官方的靜態頁面基礎上自己定制UI,這樣要靈活的多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM