最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年11月26日 08:23:45   作者:字母哥博客  
這篇文章主要介紹了將Swagger2文檔導出為HTML或markdown等格式離線閱讀,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

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

  • 在swagger2接口文檔所在的應用內,利用swagger2markup將接口文檔導出為adoc文件,也可以導出markdown文件。
  • 然后將adoc文件轉換為靜態(tài)的html格式,可以將html發(fā)布到nginx或者其他的web應用容器,提供訪問(本文不會講html靜態(tài)部署,只講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等格式文檔,用于靜態(tài)部署或離線閱讀。其中第一個maven坐標是必須的。后兩個maven坐標,當你在執(zhí)行后面的代碼過程中報下圖中的ERROR,或者有的類無法import的時候使用。

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

二、生成adoc格式文件

下面的代碼是通過編碼方式實現(xiàn)的生成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是我的服務端口,需要根據(jù)你自己的應用配置修改。

toFile表示將導出文件存放的位置,不用加后綴名。也可以使用toFolder表示文件導出存放的路徑。二者區(qū)別在于使用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格式接口文件的代碼。執(zhí)行上面的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>
   <!--顯示層級數(shù)-->
   <!--<toclevels>3</toclevels>-->
   <!--自動打數(shù)字序號-->
   <sectnums>true</sectnums>
  </attributes>
 </configuration>
</plugin>

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

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

總結

以上所述是小編給大家介紹的將Swagger2文檔導出為HTML或markdown等格式離線閱讀解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • AbstractQueuedSynchronizer內部類Node使用講解

    AbstractQueuedSynchronizer內部類Node使用講解

    這篇文章主要為大家介紹了AbstractQueuedSynchronizer內部類Node使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 使用springboot防止反編譯proguard+xjar

    使用springboot防止反編譯proguard+xjar

    介紹了三種代碼混淆和加密工具的使用方法:ProGuard、Xjar和ClassFinal,ProGuard用于混淆Java字節(jié)碼,Xjar提供對JAR包內資源的加密和動態(tài)解密,而ClassFinal則支持直接加密JAR包或WAR包,通過預研和實際操作
    2024-11-11
  • 利用Socket.io 實現(xiàn)消息實時推送功能

    利用Socket.io 實現(xiàn)消息實時推送功能

    這篇文章主要介紹了利用Socket.io 實現(xiàn)消息實時推送功能,需要的朋友可以參考下
    2017-12-12
  • java中的Arrays這個工具類你真的會用嗎(一文秒懂)

    java中的Arrays這個工具類你真的會用嗎(一文秒懂)

    這篇文章主要介紹了java中的Arrays這個工具類你真的會用嗎,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境

    Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境

    這篇文章主要為大家介紹了Quarkus篇入門創(chuàng)建項目搭建debug環(huán)境,先來一套hello?world,來搭建基本的運行及調試環(huán)境吧
    2022-02-02
  • SpringBoot中使用Redisson的實現(xiàn)示例

    SpringBoot中使用Redisson的實現(xiàn)示例

    Redission是一個強大的Java庫,用于構建和管理分布式系統(tǒng)中的緩存和任務調度,本文主要介紹了SpringBoot中使用Redisson的實現(xiàn)示例,感興趣的可以了解一下
    2023-12-12
  • 詳解spring多線程與定時任務

    詳解spring多線程與定時任務

    本篇文章主要介紹了spring多線程與定時任務,詳細的介紹了spring多線程任務和spring定時任務,有興趣的可以了解一下。
    2017-04-04
  • mybatis如何批量修改數(shù)據(jù)

    mybatis如何批量修改數(shù)據(jù)

    這篇文章主要介紹了mybatis如何批量修改數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • spring配置不掃描service層的原因解答

    spring配置不掃描service層的原因解答

    這篇文章主要介紹了spring配置不掃描service層的原因解答,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 簡單的java圖片處理類(圖片水印 圖片縮放)

    簡單的java圖片處理類(圖片水印 圖片縮放)

    本圖片處理類功能非常之強大可以實現(xiàn)幾乎所有WEB開發(fā)中對圖像的處理功能都集成了,包括有縮放圖像、切割圖像、圖像類型轉換、彩色轉黑白、文字水印、圖片水印等功能
    2013-11-11

最新評論

阿尔山市| 抚远县| 邵东县| 德钦县| 许昌市| 云阳县| 大邑县| 襄城县| 马鞍山市| 禹州市| 石首市| 双牌县| 南召县| 岳西县| 乌兰县| 和田市| 临武县| 长治市| 剑河县| 麻江县| 修武县| 张北县| 利川市| 顺平县| 翁源县| 外汇| 马尔康县| 象山县| 河间市| 即墨市| 榕江县| 云林县| 荥经县| 淳安县| 嵩明县| 张北县| 肇庆市| 蓬溪县| 金沙县| 周口市| 拉萨市|