swagger-ui默认地址
http://localhost:8080/swagger-ui.html
引入依赖
<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>
配置
@Configuration // 标明是配置类
@EnableSwagger2 //开启swagger功能
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) // DocumentationType.SWAGGER_2 固定的,代表swagger2
//.groupName("分布式任务系统") // 如果配置多个文档的时候,那么需要配置groupName来分组标识
.apiInfo(apiInfo()) // 用于生成API信息
.select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
// 扫描指定包下的接口,最为常用
//.apis(RequestHandlerSelectors.basePackage("com.xxxx.project.tool.swagger"))
//.withClassAnnotation(RestController.class) // 扫描带有指定注解的类下所有接口
//.withMethodAnnotation(PostMapping.class) // 扫描带有指定注解的方法接口
.apis(RequestHandlerSelectors.any()) // 扫描所有
// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
.paths(PathSelectors.any()
//.any() // 满足条件的路径,该断言总为true
//.none() // 不满足条件的路径,该断言总为false(可用于生成环境屏蔽 swagger)
//.ant("/user/**") // 满足字符串表达式路径
//.regex("") // 符合正则的路径
)
.build();
}
/**
* 用于定义API主界面的信息,比如可以声明所有的API的总标题、描述、版本
* 可不做配置,使用默认
*/
private ApiInfo apiInfo() {
Contact contact = new Contact(
"我是作者姓名", // 作者姓名
"https://blog.csdn.net/", // 作者网址
"123456789@163.com"); // 作者邮箱
return new ApiInfoBuilder()
.title("XX项目API") // 可以用来自定义API的主标题
.description("XX项目SwaggerAPI管理") // 可以用来描述整体的API
.termsOfServiceUrl("https://www.baidu.com") // 用于定义服务的域名(跳转链接)
.version("1.0") // 可以用来定义版本
.license("Swagger-的使用教程")
.licenseUrl("https://blog.csdn.net")
.contact(contact)
.build(); //
}
}
注解使用
@ApiOperation(value = “”, note=””)
Controller方法上使用注解
value:方法摘要在路径旁显示
note:方法详细描述
@ApiModel
类上使用注解
@ApiParam
Request(请求参数实体类)类成员变量上使用注解
defaultValue:默认值
required:true/false参数是否必须传
value:参数的说明
@ApiModelProperty
VO(返回参数实体类)类成员变量上使用注解
value:参数的说明
defaultValue: 默认值