Spring Boot 集成 swagger-codegen-maven-plugin
一. 目的:
在微服务的开发过程中,我们需要定义REST接口供开发和测试使用。而Swagger是生成接口的利器,本文主要讲述Spring Boot集成Swagger快速搭建项目以及生成接口的方式。
二. 配置和项目依赖:
1. 示例版本依赖:
a. Spring Boot采用稳定的release版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
<relativePath/>
</parent>
b. Swagger采用2.7.0:
<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>
c. 插件所需相关的依赖(基于JDK11):
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
2. plugin的配置:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>common</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<language>spring</language>
<basePackage>${swagger.service.package}</basePackage>
<apiPackage>${swagger.service.package}.api</apiPackage>
<configPackage>${swagger.service.package}.config</configPackage>
<modelPackage>${swagger.service.package}.model</modelPackage>
<delegatePackage>${swagger.service.package}.delegate</delegatePackage>
<inputSpec>${project.basedir}/src/main/resources/swagger/swagger-input.yml</inputSpec>
<output>${project.basedir}/target/generated-sources</output>
<templateDirectory>${project.basedir}/src/main/resources/swagger/templates</templateDirectory>
<ignoreFileOverride>${project.basedir}/.swagger-codegen-ignore</ignoreFileOverride>
<skipOverwrite>false</skipOverwrite>
<withXml>true</withXml>
<configOptions>
<serializableModel>true</serializableModel>
<delegatePattern>true</delegatePattern>
<useBeanValidation>true</useBeanValidation>
<hideGenerationTimestamp>true</hideGenerationTimestamp>
<dateLibrary>joda</dateLibrary>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
3. swagger-input.yml(咯), 可以同通过swagger editor 官网编辑生成。
4. 使用mvn compile生成swagger接口相关的代码:

5. 添加Delegate的简单实现,便可以运行项目。

三. 测试:
运行项目,输入默认的swagger地址便可以访问swagger接口页面:

四. Swagger线上Disable的配置:
参考详细文档:How to configure Swagger in spring boot - Coding N Concepts
学习,总结,沉淀,提高。

浙公网安备 33010602011771号