亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何將Swagger2文檔導出為HTML或markdown等格式離線閱讀

發布時間:2021-10-15 17:28:21 來源:億速云 閱讀:130 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關如何將Swagger2文檔導出為HTML或markdown等格式離線閱讀,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

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

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

一、maven依賴類庫

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

<dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <version>1.5.16</version></dependency><dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.16</version></dependency>

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多個文件的合集)。

@Testpublic 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。

<plugin> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup-maven-plugin</artifactId> <version>1.3.1</version> <configuration>  <swaggerInput>http://localhost:8888/v2/api-docs</swaggerInput><!---swagger-api-json路徑-->  <outputDir>src/main/resources/docs/asciidoc</outputDir><!---生成路徑-->  <config>   <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage><!--生成格式-->  </config> </configuration></plugin>

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

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

<plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>1.5.6</version> <configuration>   <!--asciidoc文件目錄-->  <sourceDirectory>src/main/resources/docs</sourceDirectory>  <!---生成html的路徑-->  <outputDirectory>src/main/resources/html</outputDirectory>  <backend>html</backend>  <sourceHighlighter>coderay</sourceHighlighter>  <attributes>   <!--導航欄在左-->   <toc>left</toc>   <!--顯示層級數-->   <!--<toclevels>3</toclevels>-->   <!--自動打數字序號-->   <sectnums>true</sectnums>  </attributes> </configuration></plugin>

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

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

上述就是小編為大家分享的如何將Swagger2文檔導出為HTML或markdown等格式離線閱讀了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林口县| 齐齐哈尔市| 衡阳市| 邯郸市| 连山| 萍乡市| 克东县| 合江县| 河间市| 柳州市| 比如县| 嘉峪关市| 赣州市| 乐安县| 连江县| 双峰县| 汨罗市| 江津市| 沙坪坝区| 萨嘎县| 谢通门县| 拉萨市| 丹江口市| 自治县| 年辖:市辖区| 加查县| 武陟县| 青田县| 康平县| 曲靖市| 卓资县| 兰坪| 中牟县| 安庆市| 安西县| 梁平县| 隆林| 北宁市| 广昌县| 宝兴县| 丰原市|