欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot下生成swagger离线文档

程序员文章站 2022-03-23 22:11:35
demo步骤:使用test类运行ExportSwaggerDoc.generateAsciiDocs生成文件,swagger-demo/docs/asciidoc/generated下,执行install test,生成文件swagger-demo/docs/asciidoc/html下需要生成pdf文件可以修改此处 html 和 pdf,通过 mvn asciidoctor:process-asciidoc 可以导出相应格式文件./docs/...

demo
步骤:

  1. 使用test类运行ExportSwaggerDoc.generateAsciiDocs
  2. 生成文件,swagger-demo/docs/asciidoc/generated下,执行install test,
    生成文件swagger-demo/docs/asciidoc/html下
  3. 需要生成pdf文件
    可以修改此处 html 和 pdf,通过 mvn asciidoctor:process-asciidoc 可以导出相应格式文件
<outputDirectory>./docs/asciidoc/pdf</outputDirectory> 
<backend>pdf</backend>

再执行第2步骤

引入依赖

<!--swagger 文档-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

        <!--导出swagger文档需要模板的依赖包-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
            <scope>test</scope>
        </dependency>
        <!--离线html或者文档依赖-->
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-mockmvc</artifactId>
            <scope>test</scope>
        </dependency>
        <!--springfox-staticdocs 生成静态文档 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-staticdocs</artifactId>
            <version>2.6.1</version>
        </dependency>

生成文档test类

/**

  • @Author zjx
  • @create 2020/7/14 18:05
  • @Des 使用RunWith注解和SpringBootTest注解,启动应用服务容器。
  • SpringBootTest.WebEnvironment.DEFINED_PORT表示使用application.yml定义的端口,
  • 而不是随机使用一个端口进行测试,这很重要。
  • Swagger2MarkupConfig 是输出文件的配置,如文件的格式和文件中的自然语言等
  • Swagger2MarkupConverter的from表示哪一个HTTP服务作为资源导出的源头(JSON格式),
  • 可以自己访问试一下这个链接。8081是我的服务端口,需要根据你自己的应用配置修改。
  • toFile表示将导出文件存放的位置,不用加后缀名。也可以使用toFolder表示文件导出存放的路径。
  • 二者区别在于使用toFolder导出为文件目录下按标签TAGS分类的多个文件,使用toFile是导出一个文件(toFolder多 个文件的合集)。
    /
    @RunWith(SpringRunner.class)
    /
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)*/
    public class ExportSwaggerDoc {
    /**
    • 生成AsciiDocs格式文档
    • @throws Exception
      */
      @Test
      public void generateAsciiDocs() throws Exception {
      // 输出Ascii格式
      Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
      .withMarkupLanguage(MarkupLanguage.ASCIIDOC)//设置生成格式
      .withOutputLanguage(Language.ZH)//设置语言中文还是其他语言
      .withPathsGroupedBy(GroupBy.TAGS)
      .withGeneratedExamples()
      .withoutInlineSchema()
      .build();
      //设置swagger-api的json来源
      Swagger2MarkupConverter.from(new URL(“http://localhost:8081/v2/api-docs”))
      .withConfig(config)
      .build()
      .toFolder(Paths.get("./docs/asciidoc/generated/all"));//设置生成文件的路径
      }
      }
MarkupLanguage类可选择设置生成文档格式,md、ascii和txt
配置的地址:http://localhost:8081/v2/api-docs 为swagger启动后文档地址,使用swagger弄人配置的话,只需要修改端口为自己的服务端口就行

## maven需要引入的插件

org.springframework.boot spring-boot-maven-plugin io.github.swagger2markup swagger2markup-maven-plugin 1.3.1 http://127.0.0.1:8081/v2/api-docs ./docs/asciidoc/generated
可以修改此处 html 和 pdf,通过 mvn asciidoctor:process-asciidoc 可以导出相应格式文件

./docs/asciidoc/pdf
pdf


执行 mvn asciidoctor:process-asciidoc 后再执行 mvn generate-resources,可在 targt/generated-docs 目录下生成 xml 格式文件。

**需要整理成word文档可以自己根据pdf转换
最简单方式:直接打开html,cp到新建word文档内即可**

本文地址:https://blog.csdn.net/qq_23489303/article/details/107690884