前言
Swagger 是一個規(guī)范和完整的框架,用于生成躬窜、描述浇垦、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)∪侔ぃ總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新男韧。文件的方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼默垄,允許API來始終保持同步此虑。Swagger 讓部署管理和使用功能強(qiáng)大的API從未如此簡單。好吧口锭,以上是官方的說法朦前,我直接復(fù)制的,在我看來swagger就是一個接口文檔管理器讹弯,以前我們寫接口一般都是world編寫况既,但是有一個問題就是測試的時候需要依賴第三方工具这溅,GET的接口還好组民,直接瀏覽器打開,POST的只能依賴另外的工具了悲靴,而Swagger呢臭胜,可以直接通過代碼中的注解生成接口文檔(JavaEE),一般人都用這種方式,而且直接集成在項目中癞尚,方便成員查看耸三,同時還能直接測試,另外Swagger的界面也不錯浇揩,也許這就是我選擇用Swagger的原因吧仪壮,直接官方說的RESTful 風(fēng)格那個不用管,不是RESTful 風(fēng)格的接口也能用胳徽,當(dāng)然Swagger還有一種方式就是手動寫接口說明了积锅,這樣的好處就是代碼只有代碼爽彤,因為一旦代碼中添加了Swagger的接口注解后,代碼量還是增加了不少缚陷,當(dāng)然壞處就是你改完了代碼适篙,還要去改接口文檔,而本文主要介紹第二種方式
關(guān)鍵點(diǎn)
Swagger-UI
其實就是靜態(tài)的HTML箫爷、js嚷节、css文件,從github上下載下來虎锚,打開dist目錄下的index.html硫痰,就能從運(yùn)行起來了,不過默認(rèn)是swwager demo的接口文檔窜护,如下圖:
Swagger主要通過json文件來實現(xiàn)接口文檔和接口說明等功能碍论,所以我們在輸入框內(nèi)輸入不同的json地址,就能打開不同的接口文檔
swagger-editor在線版
其實就是一個在線編輯接口文檔的網(wǎng)頁柄慰,剛才說過鳍悠,Swagger-ui展示出來的接口完全依賴于的json的內(nèi)容,所以我們可以通過Swagger-edit在線版來定制json的內(nèi)容坐搔,不用自己寫json藏研,當(dāng)然Swagger-edit在線版也是通過yaml 標(biāo)記語言來的,不過看一下demo概行,就會很容易學(xué)會蠢挡,編寫完成后我們可以下載json文件到本地,供Swagger-ui使用凳忙,不過由于某種不為人知的原因业踏,Swagger-edit在線版的訪問速度那叫一個慢,所以一般我們都會下載Swagger-Edit在本地來運(yùn)行
swagger-editor
這個和Swagger-edit在線版是同一個東西涧卵,不過因為在線版的速度太慢勤家,所以我們需要在本地來運(yùn)行一個Swagger-edit,這樣就不存在網(wǎng)絡(luò)卡等問題了
開始部署
下載相關(guān)文件
1柳恐、下載Swagger-UI
Swagger-UI伐脖,直接通過git clone或者下載zip都可以,使用到核心的東西就是下載下來的dist文件夾里面的東西
2乐设、下載swagger-editor
這一步不是必要的讼庇,如果你不想用默認(rèn)在線版的,就可以執(zhí)行這一步近尚,當(dāng)然目前除了Swagger默認(rèn)提供了一個在線的編輯器蠕啄,還有第三方的,如sosoapi戈锻,全中文傻瓜式操作的歼跟,上手快速
下載時建議下載最新版的編譯后的包却嗡,在swagger-editor頁面中有說明當(dāng)前最新的版本號和下載地址
3、下載和安裝nodejs
這一步就不詳細(xì)說了嘹承,到處都是教程窗价,而且就算沒有教程,相信對于程序員來說安裝一個軟件也是輕而易舉的事情叹卷,如果不想用這個撼港,可以直接跳過,查看<a href="#tomcat">tomcat運(yùn)行swagger-editor</a>
4骤竹、安裝http-server
使用node.js安裝http-server模塊帝牡,主要通過http-server模塊來啟用http服務(wù),運(yùn)行swagger-editor蒙揣,通過命令
npm install -g http-server
不過由于某些原因靶溜,國內(nèi)安裝可能會非常慢,這時候我們就可以用淘寶 NPM 鏡像,來加速
首先運(yùn)行命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后可能需要重啟cmd命令工具懒震,運(yùn)行
cnpm install -g http-server
這樣就能很快的安裝http-server了罩息,同樣的道理,如果需要安裝其他模塊个扰,也可以通過cnpm來安裝瓷炮,然后通過cmd命令進(jìn)入到Swagger-edit的根目錄,運(yùn)行命令
http-server -p 8000
-p的作用是指定端口递宅,后面的8000就是我們指定的端口娘香,訪問localhost:8000就可以進(jìn)入swagger-edit就可以進(jìn)入編輯界面了,左邊是編輯框办龄,右邊是預(yù)覽界面烘绽,如下圖
當(dāng)然這一步也不是必須的,如果不愿用通過http-server來運(yùn)行swagger-editor俐填,可以通過tomcat來運(yùn)行
<a name="tomcat"></a>tomcat運(yùn)行swagger-editor
首先把swagger-editor目錄復(fù)制到tomcat根目錄的webapps安接,然后運(yùn)行tomcat,訪問localhost:8080/swagger-editor就可以了
5玷禽、導(dǎo)出json
由于編寫接口文檔并不在本文檔的內(nèi)容赫段,所以關(guān)于編寫這里就不多做描述,而且主要我覺得編寫也沒啥可說矢赁,直接跟著默認(rèn)的接口文檔來改就能看出來大概了,所以直接到最后一步贬丛,編寫完成后導(dǎo)出json文件
點(diǎn)擊File->DownLoad json就會下載swagger.json文件
6撩银、部署swagger-ui
首先把json文件復(fù)制到swagger-ui根目錄,修改index.html的引用json文件的url豺憔,最后直接打開index.html也行额获,部署到服務(wù)器也行够庙,不過要注意index.html中引用的json文件的url一定要正確
結(jié)語
到此為止部署swagger的步驟已經(jīng)完成了,如果有不明白或者不清楚的地方抄邀,可以留言交流