Swagger簡介

問題

首先我們先來說說傳統(tǒng)開發(fā)中前后端協(xié)同開發(fā)出現(xiàn)的一些問題。
不管是前端還是后端開發(fā),應(yīng)該都多少被接口文檔折磨過。前端經(jīng)常抱怨后端給的接口文檔與實際情況不一致,后端又覺得編寫及維護(hù)接口文檔會耗費(fèi)不少精力,經(jīng)常來不及更新。其實無論是前端調(diào)用后端,還是后端調(diào)用后端,都期望有一個好的接口文檔。但是這個接口文檔對于程序員來說,就跟注釋一樣,經(jīng)常會抱怨別人寫的代碼沒有寫注釋,然而自己寫起代碼起來,最討厭的,也是寫注釋。所以僅僅只通過強(qiáng)制來規(guī)范大家是不夠的,隨著時間推移,版本迭代,接口文檔往往很容易就跟不上代碼了。

Swagger是什么?

正因為有這些問題的出現(xiàn),Swagger才得以誕生,你可以把Swagger看做是一套規(guī)范,通過這套規(guī)范,你只需要按照它的規(guī)范去定義接口及接口相關(guān)的信息,再通過Swagger衍生出來的一系列項目和工具,就可以做到生成各種格式的接口文檔,生成多種語言的客戶端和服務(wù)端的代碼,以及在線接口調(diào)試頁面等等。這樣,如果按照新的開發(fā)模式,在開發(fā)新版本或者迭代版本的時候,只需要更新Swagger描述文件,就可以自動生成接口文檔和客戶端服務(wù)端代碼,做到調(diào)用端代碼、服務(wù)端代碼以及接口文檔的一致性。
但即便如此,對于許多開發(fā)來說,編寫這個yml或json格式的描述文件,本身也是有一定負(fù)擔(dān)的工作,所以作為Java屆服務(wù)端的大一統(tǒng)框架Spring,迅速將Swagger規(guī)范納入自身的標(biāo)準(zhǔn),建立了Spring-swagger項目,后面改成了現(xiàn)在的Springfox。通過在項目中引入Springfox,可以掃描相關(guān)的代碼,生成該描述文件,進(jìn)而生成與代碼一致的接口文檔和客戶端代碼。這種通過代碼生成接口文檔的形式,在后面需求持續(xù)迭代的項目中,顯得尤為重要和高效。

主要開源工具

Swagger Codegen

通過Codegen 可以將描述文件生成html格式和cwiki形式的接口文檔,同時也能生成多鐘語言的服務(wù)端和客戶端的代碼。支持通過jar包,docker,node等方式在本地化執(zhí)行生成。也可以在后面的Swagger Editor中在線生成。

Swagger UI

提供了一個可視化的UI頁面展示描述文件。接口的調(diào)用方、測試、項目經(jīng)理等都可以在該頁面中對相關(guān)接口進(jìn)行查閱和做一些簡單的接口請求。該項目支持在線導(dǎo)入描述文件和本地部署UI項目。

Swagger Editor

類似于markendown編輯器的編輯Swagger描述文件的編輯器,該編輯支持實時預(yù)覽描述文件的更新效果。也提供了在線編輯器和本地部署編輯器兩種方式。

Swagger Inspector

與postman類似,是一個可以對接口進(jìn)行測試的在線版的postman。比在Swagger UI里面做接口請求,會返回更多的信息,也會保存你請求的實際請求參數(shù)等數(shù)據(jù)。

Swagger Hub

集成了上面所有項目的各個功能,你可以以項目和版本為單位,將你的描述文件上傳到Swagger Hub中。在Swagger Hub中可以完成上面項目的所有工作,需要注冊賬號,分免費(fèi)版和收費(fèi)版。

Springfox Swagger

Spring 基于swagger規(guī)范,可以將基于SpringMVC和Spring Boot項目的項目代碼,自動生成JSON格式的描述文件。本身不是屬于Swagger官網(wǎng)提供的,在這里列出來做個說明,方便后面作一個使用的展開。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • swagger 了解更多 一、簡介 Swagger是一種REST APIs的簡單但強(qiáng)大的表示方式,標(biāo)準(zhǔn)的,語言無關(guān)...
    阿琦zzz閱讀 4,839評論 1 0
  • Swagger 是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件。本文簡單介紹了在項目中集成swagg...
    GhostStories閱讀 2,697評論 2 13
  • 導(dǎo)語: 相信無論是前端還是后端開發(fā),都或多或少地被接口文檔折磨過。前端經(jīng)常抱怨后端給的接口文檔與實際情況不一致。后...
    wuqke閱讀 1,286,571評論 30 316
  • swagger是一個工具,用于自動生成web網(wǎng)站對外提供的服務(wù)接口文檔,并且以web頁面的形式進(jìn)行展示。 那么我們...
    李燦輝閱讀 825評論 0 0
  • swagger的由來 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,現(xiàn)在的網(wǎng)站架構(gòu)基本都由原來的后端渲染,變成了:前端渲染、先后端分離的形...
    飛逝1閱讀 2,765評論 0 1

友情鏈接更多精彩內(nèi)容