一、pom.xml
<springfox-swagger.version>2.8.0</springfox-swagger.version>
<swagger-bootstrap-ui.version>1.7.2</swagger-bootstrap-ui.version>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>${swagger-bootstrap-ui.version}</version>
</dependency>
二、创建配置类 SwaggerConfig
package com.hz52.system.config;
import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Program: erp
* @Description:
* @Author: 52Hz
* @CreationTime: 2021年08月04日 15:54 星期三
**/
@Configuration//配置类
@EnableSwagger2 //swagger注解
@EnableSwaggerBootstrapUI
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title("网站-课程中心API文档")
.description("本文档描述了项目中心微服务接口定义")
.termsOfServiceUrl("127.0.0.1:8080")
.contact("52Hz")
.version("1.0")
//.contact(new Contact("java", "http://xxx.com:8001/demo", "xxx@qq.com"))
.build();
}
}
三、添加注释,生成doc
常用的标记如下:
@Api()用于类;
标识这个类是swagger的资源
tags–表示分组说明标签
@ApiOperation()用于方法;
表示一个http请求的操作
value用于方法描述
notes用于提示内容
@ApiModel()用于实体类
表示对类进行说明,用于参数用实体类接收
value–表示对象名
description–描述
@ApiModelProperty()用于实体类字段
表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏
@ApiImplicitParam() 用于 controller 方法
表示单独的请求参数
name–参数ming
value–参数说明
dataType–数据类型
paramType–参数类型
example–举例说明
@ApiImplicitParams() 用于 controller 方法,包含多个 @ApiImplicitParam
@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上
说明:简单的标记只需要@Api(tags="") 和 @ApiOperation(value="",notes="")
更多关于 注解用法可以参考https://github.com/swagger-api/swagger-core/wiki/Annotations
四、swagger-ui
http://localhost:8080/swagger-ui.html
四、doc
http://localhost:8080/doc.html
五、配置权限(升级)
在1.9.0版本时,针对Swagger的资源接口,SwaggerBootstrapUi提供了简单的Basic认证功能。
方法一
升级Swagger1.9.0
<springfox-swagger.version>2.8.0</springfox-swagger.version>
<swagger-bootstrap-ui.version>1.9.0</swagger-bootstrap-ui.version>
<!-- 引入Swagger-->
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>${swagger-bootstrap-ui.version}</version>
</dependency>
配置yml文件
swagger:
production: false
basic:
enable: true
username: admin
password: 123456
OR
配置properties
#配置Swagger接口文档需要登录
swagger.production=false
swagger.basic.enable=true
swagger.basic.username=admin
swagger.basic.password=123456
以上分别为启用,并且用户名为admin.密码为123456。
切记swagger.production 不可设置为true,否则将屏蔽所有资源
在swaggerConfig中添加注解
@EnableSwaggerBootstrapUI
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdFgHkB2-1628833397762)(D:\管理系统.assets\image-20210804172753728.png)]
方法二
@Profile({"dev","test"})