將Swagger2文檔導(dǎo)出為HTML或markdown等格式離線閱讀

將Swagger2文檔導(dǎo)出為HTML或markdown等格式離線閱讀

網(wǎng)上有很多《使用swagger2構(gòu)建API文檔》的文章鳖目,swagger2文檔是一個在線文檔氓皱,需要使用HTTP訪問极舔。但是在我們?nèi)粘J褂胹wagger接口文檔的時候撩扒,有的時候需要接口文檔離線訪問鸦列,如將文檔導(dǎo)出為html、markdown格式搪花。又或者我們不希望應(yīng)用系統(tǒng)與swagger接口文檔使用同一個服務(wù)遏片,而是導(dǎo)出HTML之后單獨部署,這樣做保證了對接口文檔的訪問不影響業(yè)務(wù)系統(tǒng)撮竿,也一定程度提高了接口文檔的安全性吮便。核心的實現(xiàn)過程就是:

  • 在swagger2接口文檔所在的應(yīng)用內(nèi),利用swagger2markup將接口文檔導(dǎo)出為adoc文件倚聚,也可以導(dǎo)出markdown文件线衫。

  • 然后將adoc文件轉(zhuǎn)換為靜態(tài)的html格式,可以將html發(fā)布到nginx或者其他的web應(yīng)用容器惑折,提供訪問(本文不會講html靜態(tài)部署授账,只講HTML導(dǎo)出)。

注意:adoc是一種文件格式惨驶,不是我的筆誤白热。不是doc文件也不是docx文件。

一粗卜、maven依賴類庫

在已經(jīng)集成了swagger2的應(yīng)用內(nèi)屋确,通過maven坐標(biāo)引入相關(guān)依賴類庫,pom.xml代碼如下:

swagger2markup用于將swagger2在線接口文檔導(dǎo)出為html,markdown,adoc等格式文檔,用于靜態(tài)部署或離線閱讀续扔。其中第一個maven坐標(biāo)是必須的攻臀。后兩個maven坐標(biāo),當(dāng)你在執(zhí)行后面的代碼過程中報下圖中的ERROR纱昧,或者有的類無法import的時候使用刨啸。

swagger2markup過程可能拋出的異常

產(chǎn)生異常的原因已經(jīng)有人在github的issues上給出解釋了:當(dāng)你使用swagger-core版本大于等于1.5.11,并且swagger-models版本小于1.5.11就會有異常發(fā)生。所以我們顯式的引入這兩個jar识脆,替換掉swagger2默認引入的這兩個jar设联。

swagger2markup異常的解決方案

二、生成adoc格式文件

下面的代碼是通過編碼方式實現(xiàn)的生成adoc格式文件的方式

  • 使用RunWith注解和SpringBootTest注解灼捂,啟動應(yīng)用服務(wù)容器离例。 SpringBootTest.WebEnvironment.DEFINED_PORT表示使用application.yml定義的端口,而不是隨機使用一個端口進行測試悉稠,這很重要宫蛆。

  • Swagger2MarkupConfig 是輸出文件的配置,如文件的格式和文件中的自然語言等

  • Swagger2MarkupConverter的from表示哪一個HTTP服務(wù)作為資源導(dǎo)出的源頭(JSON格式)的猛,可以自己訪問試一下這個鏈接洒扎。8888是我的服務(wù)端口辑甜,需要根據(jù)你自己的應(yīng)用配置修改。

  • toFile表示將導(dǎo)出文件存放的位置袍冷,不用加后綴名。也可以使用toFolder表示文件導(dǎo)出存放的路徑猫牡。二者區(qū)別在于使用toFolder導(dǎo)出為文件目錄下按標(biāo)簽TAGS分類的多個文件胡诗,使用toFile是導(dǎo)出一個文件(toFolder多個文件的合集)。

上面的這一段代碼是生成markdown格式接口文件的代碼淌友。執(zhí)行上面的2段單元測試代碼煌恢,就可以生產(chǎn)對應(yīng)格式的接口文件。

還有一種方式是通過maven插件的方式震庭,生成adoc和markdown格式的接口文件瑰抵。筆者不常使用這種方式,沒有使用代碼生成的方式配置靈活器联,很多配置都放到pom.xml感覺很臃腫二汛。但還是介紹一下,首先配置maven插件swagger2markup-maven-plugin。

然后運行插件swagger2markup就可以了拨拓,如下圖:

插件運行方式(點擊可放大)

三肴颊、通過maven插件生成HTML文檔

adoc的sourceDirectory路徑必須和第三小節(jié)中生成的adoc文件路徑一致。然后按照下圖方式運行插件渣磷。

asciidoctor:process-asciidoc插件運行


HTMl接口文檔顯示的效果如下婿着,有了HTML接口文檔你想轉(zhuǎn)成其他各種格式的文檔就太方便了,有很多工具可以使用醋界。這里就不一一介紹了竟宋。

推薦:SpringBoot系列精品文章(16章97節(jié)), http://springboot.zimug.com

本號只做持續(xù)的知識輸出,希望您能關(guān)注形纺、評論丘侠、轉(zhuǎn)發(fā)!您的支持是我不竭的創(chuàng)作動力挡篓!讓知識產(chǎn)生價值婉陷、讓程序員改變世界!


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末官研,一起剝皮案震驚了整個濱河市秽澳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌戏羽,老刑警劉巖担神,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異始花,居然都是意外死亡妄讯,警方通過查閱死者的電腦和手機孩锡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亥贸,“玉大人躬窜,你說我怎么就攤上這事】恢茫” “怎么了荣挨?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朴摊。 經(jīng)常有香客問我默垄,道長,這世上最難降的妖魔是什么甚纲? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任口锭,我火速辦了婚禮,結(jié)果婚禮上介杆,老公的妹妹穿的比我還像新娘。我一直安慰自己这溅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布臭胜。 她就那樣靜靜地躺著,像睡著了一般癞尚。 火紅的嫁衣襯著肌膚如雪耸三。 梳的紋絲不亂的頭發(fā)上浇揩,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音胳徽,去河邊找鬼积锅。 笑死,一個胖子當(dāng)著我的面吹牛养盗,可吹牛的內(nèi)容都是我干的缚陷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼箫爷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虎锚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤效斑,失蹤者是張志新(化名)和其女友劉穎柱徙,沒想到半個月后鳍悠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坐搔,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡概行,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年弧岳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禽炬。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柳恐,靈堂內(nèi)的尸體忽然破棺而出热幔,到底是詐尸還是另有隱情,我是刑警寧澤绎巨,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站场勤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏格遭。R本人自食惡果不足惜窗价,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧骤竹,春花似錦往毡、人聲如沸蒙揣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽个扰。三九已至葱色,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苍狰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工俐填, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翔忽,地道東北人英融。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓矢赁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撩银。 傳聞我的和親對象是個殘疾皇子豺憔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容