第一步、引入pom
<swagger-ui.version>2.9.2</swagger-ui.version>
<swagger2.version>2.9.2</swagger2.version>
<swagger-bootstrap-ui.version>1.8.5</swagger-bootstrap-ui.version>
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-ui.version}</version>
</dependency>
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<!-- 引入swagger-bootstrap-ui包 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>${swagger-bootstrap-ui.version}</version>
</dependency>
swagger-bootstrap-ui是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,能拥有一份简洁、强大的接口文档体验
2,加入SwaggerConfig配置类
package com.cibn.boss.order.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* SwaggerConfig
* @desc: Swagger配置
* @version:
* @createTime: 2020/8/06 14:36
* @author:
*/
@Configuration
public class SwaggerConfig {
@Bean
public Docket createH5RestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("海外boss api文档")
.description("restful 风格接口")
.version("1.0")
.build();
}
}
3,启动类上加上@EnableSwagger2,以及@EnableSwaggerBootstrapUI注解
package com.cibn.boss.order;
import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwaggerBootstrapUI
@EnableSwagger2
@SpringBootApplication
@MapperScan(value = "com.cibn.boss.order.dao")
public class BossAppcation {
public static void main(String[] args)
{
SpringApplication.run(BossAppcation.class, args);
}
}
访问页面: http://ip:端口号/项目名/doc.html
Swagger 常用注解
1.@Api
用于类,表示标识这个类是swagger的资源。属性如下:
tags 表示说明,tags如果有多个值,会生成多个列表
value 表示说明,可以使用tags替代
2.@ApiOperation
用于方法,表示一个http请求的操作。属性如下:
value 用于方法描述
notes 用于提示内容
tags 用于API文档控制的标记列表,视情况而用,可以进行独立分组
3.@ApiParam
用于方法、参数、字段说明;表示对参数的添加元数据。
name 参数名
value 参数说明
required 是否必填
4.@ApiModel
用于类,表示对类进行说明,用于参数用实体类接受。
value 对象名
description 描述
5.@ApiModelProperty
用于方法、字段,表示对model属性的说明或者数据操作更改。
value 字段说明
name 重写属性名
dataType 重写属性数据类型
required 是否必填
example 举例说明
hidden 隐藏
6.@ApiIgnore
用于类、方法、方法参数,表示这个方法或者类被忽略,不在swagger-ui.html上显示。
7.@ApiImplicitParam
用于方法,表示单独的请求参数。
name 参数名
value 参数说明
dataType 数据类型
paramType 参数类型
example 举例说明
8.@ApiImplicitParams
用于方法,包含多个 @ApiImplicitParam。
9.@ApiResponses @ApiResponse
用于类或者方法,描述操作的可能响应。
code 响应的HTTP状态代码
message 响应附带的可读消息
10.@ResponseHeader
用于方法,响应头设置。
name 响应头名称
description 头描述
response 默认响应类 void
responseContainer 参考ApiOperation中配置