日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读

發布時間:2025/3/21 HTML 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上有很多《使用swagger2構建API文檔》的文章,該文檔是一個在線文檔,需要使用HTTP訪問。但是在我們日常使用swagger接口文檔的時候,有的時候需要接口文檔離線訪問,如將文檔導出為html、markdown格式。又或者我們不希望應用系統與swagger接口文檔使用同一個服務,而是導出HTML之后單獨部署,這樣做保證了對接口文檔的訪問不影響業務系統,也一定程度提高了接口文檔的安全性。核心的實現過程就是:

在swagger2接口文檔所在的應用內,利用swagger2markup將接口文檔導出為adoc文件,也可以導出markdown文件。

然后將adoc文件轉換為靜態的html格式,可以將html發布到nginx或者其他的web應用容器,提供訪問(本文不會講html靜態部署,只講HTML導出)。

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

一、maven依賴類庫

在已經集成了swagger2的應用內,通過maven坐標引入相關依賴類庫,pom.xml代碼如下:

io.github.swagger2markup

swagger2markup

1.3.1

io.swagger

swagger-core

1.5.16

io.swagger

swagger-models

1.5.16

swagger2markup用于將swagger2在線接口文檔導出為html,markdown,adoc等格式文檔,用于靜態部署或離線閱讀。其中第一個maven坐標是必須的。后兩個maven坐標,當你在執行后面的代碼過程中報下圖中的ERROR,或者有的類無法import的時候使用。

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

二、生成adoc格式文件

下面的代碼是通過編碼方式實現的生成adoc格式文件的方式

@RunWith(SpringRunner.class)

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)

public class DemoApplicationTests {

@Test

public void generateAsciiDocs() throws Exception {

// 輸出Ascii格式

Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()

.withMarkupLanguage(MarkupLanguage.ASCIIDOC) //設置生成格式

.withOutputLanguage(Language.ZH) //設置語言中文還是其他語言

.withPathsGroupedBy(GroupBy.TAGS)

.withGeneratedExamples()

.withoutInlineSchema()

.build();

Swagger2MarkupConverter.from(new URL("http://localhost:8888/v2/api-docs"))

.withConfig(config)

.build()

.toFile(Paths.get("src/main/resources/docs/asciidoc"));

}

}

使用RunWith注解和SpringBootTest注解,啟動應用服務容器。 SpringBootTest.WebEnvironment.DEFINED_PORT表示使用application.yml定義的端口,而不是隨機使用一個端口進行測試,這很重要。

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

Swagger2MarkupConverter的from表示哪一個HTTP服務作為資源導出的源頭(JSON格式),可以自己訪問試一下這個鏈接。8888是我的服務端口,需要根據你自己的應用配置修改。

toFile表示將導出文件存放的位置,不用加后綴名。也可以使用toFolder表示文件導出存放的路徑。二者區別在于使用toFolder導出為文件目錄下按標簽TAGS分類的多個文件,使用toFile是導出一個文件(toFolder多個文件的合集)。

@Test

public void generateMarkdownDocsToFile() throws Exception {

// 輸出Markdown到單文件

Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()

.withMarkupLanguage(MarkupLanguage.MARKDOWN)

.withOutputLanguage(Language.ZH)

.withPathsGroupedBy(GroupBy.TAGS)

.withGeneratedExamples()

.withoutInlineSchema()

.build();

Swagger2MarkupConverter.from(new URL("http://localhost:8888/v2/api-docs"))

.withConfig(config)

.build()

.toFile(Paths.get("src/main/resources/docs/markdown"));

}

上面的這一段代碼是生成markdown格式接口文件的代碼。執行上面的2段單元測試代碼,就可以生產對應格式的接口文件。

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

io.github.swagger2markup

swagger2markup-maven-plugin

1.3.1

http://localhost:8888/v2/api-docs

src/main/resources/docs/asciidoc

ASCIIDOC

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

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

org.asciidoctor

asciidoctor-maven-plugin

1.5.6

src/main/resources/docs

src/main/resources/html

html

coderay

left

true

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

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

期待您的關注

本文轉載注明出處(必須帶連接,不能只轉文字):字母哥博客。

總結

以上是生活随笔為你收集整理的swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。