Spring 整合 Swagger2 生成接口文档
2018-10-23 08:54
288 查看
版本说明:
swagger:2.9.2
spring:4.3.6.RELEASE
注:使用springfox集成swagger2,依赖 guava 20.0版本。
Pom依赖:
[code]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.captain</groupId> <artifactId>swagger2-demo</artifactId> <version>1.0</version> <packaging>war</packaging> <properties> <spring-version>4.3.6.RELEASE</spring-version> <jackson.verson>2.8.8</jackson.verson> <springfox-version>2.9.2</springfox-version> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${springfox-version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${springfox-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.verson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.verson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.verson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>${jackson.verson}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF8</encoding> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration> </plugin> </plugins> <finalName>swagger</finalName> </build> </project>
Spring application.xml配置:
[code]<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd" default-autowire="byName"> <!-- 扫描注解Bean --> <context:component-scan base-package="包路径" /> <import resource="applicationContext-*.xml" /> </beans>
Swagger配置:
[code]@Configuration @EnableSwagger2 // 启用资源导入 @EnableWebMvc public class SwaggerConfig extends WebMvcConfigurerAdapter { /** * 静态资源导入 */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } /** * 文档配置信息注入 * @return */ @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2).select().build() // 是否启用默认响应消息描述(Open Api相关响应状态:如200,404,502等) .useDefaultResponseMessages(false) // .enable(false) 是否对外提供api .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("标题:XX接口文档").description("描述:接口").version("版本:3.1").build(); } }
常用到的注解有:
- Api
- ApiModel
- ApiModelProperty
- ApiOperation
- ApiParam
- ApiResponse
- ApiResponses
- ResponseHeader
具体使用查看源码注释。
发布到Web容器,文档访问路径为:
http://ip:port/发布项目名/swagger-ui.html
阅读更多
相关文章推荐
- Swagger自动接口文档生成框架————springboot整合swagger总结
- Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档
- swagger2 与 springmvc 整合 生成接口文档
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- Springboot | SpringBoot 微服务整合Swagger生成API文档
- springboot结合swagger自动生成接口文档
- spring cloud-Swagger2整合Eureka,实现Eureka页面自动跳转到Swagger2UI界面查看服务接口信息
- Spring Rest Docs WebTestClient自动生成接口文档Gradle版
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- Swagger2 生成 Spring Boot API 文档
- springboot-swagger2 Restful接口文档的形成
- Swagger+Spring mvc生成Restful接口文档
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- Spring Boot 系列 - Swagger2 生成RESTful接口文档
- spring-boot整合swagger生成在线api文档
- Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
- 使用Swagger整合SpringMVC自动生成Restful接口文档
- Restful形式接口文档生成之Swagger与SpringMVC整合手记
- Spring Boot 系列(七)Swagger2-生成RESTful接口文档
- Restful形式接口文档生成之Swagger与SpringMVC整合