第一步导入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
第二部将该类放入项目的config包下-包含token
有没有全局token都不影响
import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
* 后面需要访问时用这个路径
* http://localhost:8080/swagger-ui.html
* http://localhost:8080/v2/api-docs
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
// 配置调用接口需要的全局参数,如 Token
List<Parameter> parameters = new ArrayList<>();
parameters.add(new ParameterBuilder()
.name("Authorization")
.description("认证token")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(false)
.build());
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//.host("host") // 设置host, 如果前端文档有代理,在SwaggerFilter中进行过滤并删除这个属性,否则接口无法调用
.select()
/*
下面这行代码是告诉 Swagger 要扫描有 @Api 注解的类,
可以将 Api.class 替换成 ApiOperation.class 扫描带有 @ApiOperation 注解的方法。
当然还可以使用 basePackage() 方法配置 Swagger 需要扫描的包路径。
*/
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(parameters);
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("权限管理系统")
.description("RESTFul接口文档说明")
.version("1.0")
.build();
}
}
第三步使用两个注解
@Api 配置在Controller上
@ApiOperation(“说明”) 配置在接口方法上测试
例如:@Api 放到controller层类上
@ApiOperation(“说明”) 配置在接口方法上
第四步如果你用了security,则需要放行
代码如下:
.antMatchers("/login","/logout",
"/swagger-ui.html","/swagger-resources/**","/webjars/**","/*/api-docs").permitAll()