【Java】Swagger导出文档

本文介绍如何使用swagger2markup和asciidoctor插件自动化生成API文档。通过配置Maven插件,实现从Swagger API Docs自动生成ASCII格式文档,并进一步转换为HTML格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导出接口文档配置:

0、确认系统的 /v2/api-docs 接口可用

1、进行swagger2markup POM配置

			<plugin>
                <groupId>io.github.swagger2markup</groupId>
                <artifactId>swagger2markup-maven-plugin</artifactId>
                <version>1.3.1</version>
                <configuration>
                    <!-- api-docs访问url -->
                    <swaggerInput>http://ip地址:端口/项目名/v2/api-docs</swaggerInput>
                    <!-- 生成为多个文档,输出路径 -->
                    <outputDir>src/main/resources/api</outputDir>
                    <config>
                        <!-- ascii格式文档 -->
                        <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
                        <swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
                    </config>
                </configuration>
            </plugin>

项目根目录下cmd执行 mvn swagger2markup:convertSwagger2markup
查看并确认后缀名.adoc文件已经生成,如下图所示:

在这里插入图片描述

2、进行asciidoctor POM配置

			<!-- mvn asciidoctor:process-asciidoc -->
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>1.5.6</version>
                <configuration>
                    <sourceDirectory>src/main/resources/api</sourceDirectory>
                    <outputDirectory>src/main/resources/api/html</outputDirectory>
                    <backend>html</backend>
                    <sourceHighlighter>coderay</sourceHighlighter>
                    <attributes>
                        <toc>left</toc>
                    </attributes>
                </configuration>
            </plugin>

项目根目录下cmd执行 mvn asciidoctor:process-asciidoc
如下图所示,接口文档已经生成!

在这里插入图片描述
注意:如果项目中配置有security,在进行.adoc文档生成过程中会进行鉴权拦截,此时只需要在security的配置中把/v2/**放开即可。

//部分代码如下:
.antMatchers("/v2/**").permitAll()
### 如何在Java项目中使用Swagger实现接口文档导出 #### 准备工作 为了实现在Java项目中通过Swagger导出接口文档,首先需要引入必要的依赖库。通常情况下,在`pom.xml`文件中加入如下Maven依赖来支持Swagger以及用于转换为其他格式所需的工具: 对于Spring Boot项目来说,除了基本的springfox-swagger2外还需要添加swagger2markup以便于后续操作。 ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <!-- Swagger UI --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> <!-- For converting to AsciiDoc and then HTML/PDF etc. --> <dependency> <groupId>com.github.swagger2markup</groupId> <artifactId>swagger2markup-spring-boot-starter</artifactId> <version>${swagger2markup.version}</version> </dependency> ``` #### 配置Swagger 接着定义SwaggerConfig类来进行具体的配置,这一步骤主要是为了让Swagger能够识别并解析应用程序中的API信息。这里会涉及到一些常用的注解如@Api、@ApiOperation等用来描述各个接口的功能和用途[^4]。 ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("your.package.name")) .paths(PathSelectors.any()) .build(); } } ``` #### 导出接口文档 当完成上述准备工作后,就可以着手准备将在线形式存在的Swagger API文档转化为更易于分发的形式了。按照之前的介绍,核心思路是在应用内部先生成AsciiDoctor(adoc)格式的内容再进一步加工成为最终目标格式比如HTML或Markdown[^1]。 可以通过编写命令行脚本来触发这个过程,或者直接调用Swagger2MarkupConverter提供的API方法执行转化任务。下面给出了一种基于编程方式的例子: ```java import com.github.swagger2markup.MarkupLanguage; import com.github.swagger2markup.Swagger2MarkupConfig; import com.github.swagger2markup.Swagger2MarkupConverter; ... // 创建配置实例 Swagger2MarkupConfig config = new Swagger2MarkupConfig.Builder() .withMarkupLanguage(MarkupLanguage.ASCIIDOC) .build(); // 初始化转换器对象 Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(new URL("http://localhost:8080/v2/api-docs")).withConfig(config).build(); // 执行转换并将结果保存至指定路径 converter.toFile(Paths.get("/path/to/output.adoc")); ``` 一旦拥有了adoc文件,则可以根据实际需求继续将其转变为更加友好的展示形式,例如静态网页或是便于打印阅读的PDF版本。值得注意的是,虽然理论上可以直接由adoc生成PDF,但由于样式控制等问题可能不如预期效果好,因此实践中更多采用间接手段——即先转为HTML后再考虑下一步动作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值