springboot從小白到大神-008程序猿的痛:寫文檔

程序員 JSON HTML Word 烏木軲轆 2017-04-06

springboot從小白到大神-008程序猿的痛:寫文檔


對於大多數程序猿來說,coding並不會讓大家感到難受,即便是碰到暫時解決不掉的問題,那也是痛並快樂著,但是提到寫文檔。。。只剩下痛了,至少我是這麼認為的!!!

今天就給大家介紹一個NB閃閃的工具:swagger,這個既可以當做api文檔,還可以當做接口測試的工具;使用起來及其簡單,而且還可以輸出接口數據後進行自定義解析,所以強力推薦給大家。

網上有不少類似的帖子,都講了swagger的然,我要講的是其所以然,想告訴大家的是一些更實用的技巧,能直接應用到日常工作中去,當然,大神們可以繞行了~~~;


大家手上肯定有一些自己編寫的springboot項目了,直接在已有的基礎上做修改就可以了;放心,不會對你的項目有太大的侵入,即使有一些,如果你想清除這些代碼的話也是灰常灰常easy滴~~~

首先,我們在pom.xml中引入使用swagger2需要用到的jar包:

springboot從小白到大神-008程序猿的痛:寫文檔


然後,修改你自己項目對應的的Application.java代碼,只需要添加一行註解,that's all!!!

比如,我的項目中修改如下:

springboot從小白到大神-008程序猿的痛:寫文檔

現在呢,重新啟動你的項目(Relaunch)。。。

打開瀏覽器,訪問http://localhost:8080/swagger-ui.html (url地址前面部分根據自己的項目調整)

神奇的事情發生了,swagger的界面這就出現鳥~~~

springboot從小白到大神-008程序猿的痛:寫文檔

看看你自己的控制器controller在不在其中?必須在哈~~~,點開看看吧:

springboot從小白到大神-008程序猿的痛:寫文檔

你的控制器中定義的接口參數詳細列表應該就在下面了,這個不就能當做是文檔了嘛!!!

下面還有個“Try it out”,填上各個參數,點一下看看吧

springboot從小白到大神-008程序猿的痛:寫文檔

springboot從小白到大神-008程序猿的痛:寫文檔

哦耶~~~ 測試功能也可以用嘍~~~

怎麼樣,這個算是nb閃閃麼;

這個是默認的結果啦,比如最上面的"basic-error-controller”顯然不是我們需要的,裡面也沒有任何附加的文字;文檔嘛,必要的文字說明還是必須要有滴,好,下面我們就要開始定製它了

新建一個class:com.wumugulu.config.Swagger2Define.java,把剛才application.java中那行新增的代碼移到這裡來:

springboot從小白到大神-008程序猿的痛:寫文檔

springboot從小白到大神-008程序猿的痛:寫文檔

代碼如上面,現在重新啟動項目後在刷新swagger的頁面看看效果,那個error-controller應該已經沒有了哦,因為它現在只顯示我們定義的接口文檔了哦,見代碼的第40行;代碼中其他紅框標出來的內容在頁面上都有體現,大家可以留意一下哈:

springboot從小白到大神-008程序猿的痛:寫文檔

上面咱們對swagger文檔的整體進行了定製,下一步,咱們要具體對controller和其中的接口方法進行定製嘍~~~,以我的BookController.java為例:

springboot從小白到大神-008程序猿的痛:寫文檔

相應的swagger2頁面顯示效果如下:

springboot從小白到大神-008程序猿的痛:寫文檔

這就成了!!!上面例子中,我測試了header參數,path參數,form表單參數,還有文件上傳的參數,都沒有問題;不過遺憾的是上傳文件數組我沒有測試成功,如果有知道的同學還請賜教;

此外,我還添加了三個方法作為示例:

springboot從小白到大神-008程序猿的痛:寫文檔

後面就比較簡單了,在swagger2的頁面中查看效果就可以領悟其中真諦啦~~~

還沒完呢~~~ 有的同學說了,我們這兒boss說了,這樣的東西不成,必須寫成word/pdf文檔。。。咋整!?

有辦法,swagger2提供了導出json格式數據的方式,具體的看swagger頁面的上面右邊:

springboot從小白到大神-008程序猿的痛:寫文檔

用瀏覽器訪問 http://localhost:8080/v2/api-docs?group=full-API

ok,json數據出來了:

springboot從小白到大神-008程序猿的痛:寫文檔

這個數據弄出來就好辦了哈,比如我能想到的,自己整個簡單的html頁面,用很簡單的javascript就能解析出json數據的內容,然後在html頁面顯示出來了哈,然後再把html轉成word,再轉成pdf。。。。。。隨心所欲,想怎麼轉,就怎麼轉,哈哈,不知道你們boss的臉色會變成什麼顏色嗒~~~

怎麼樣,對這個swagger2感覺如何,說他nb閃閃不算誇張吧~~~他的功能絕不僅限於此,我只是拋個磚頭,大家有興趣的可以自行研究了~~~

還有人說了,這個東西對代碼有入侵。。。。。。那就再介紹一個東東給大家:sosoapi,這個東西好像更強調管理功能,其他的跟swagger很類似,大家自行學習吧

好了,今天就到這裡哈,我已經把所有代碼託管到github了,歡迎大家賞臉去看哈~~~

https://github.com/yamazaki97

相關推薦

推薦中...