里面具体的常量都是 可以自定义的,这里就不黏贴出来了,要的小伙伴们可以私信我。
我的maven依赖:
<swagger.fox.version>2.9.2</swagger.fox.version>
<!-- swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
@Configuration
@Profile({"pro","dev"})
public class SwaggerConfig {
public static final String clzName = RestResponse.class.getSimpleName();
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.globalResponseMessage(RequestMethod.GET,globalResponse())
.globalResponseMessage(RequestMethod.POST,globalResponse())
.globalResponseMessage(RequestMethod.PUT,globalResponse())
.globalResponseMessage(RequestMethod.DELETE,globalResponse())
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.paths(PathSelectors.regex("^(?!auth).*$"))
.build()
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
;
}
//全局异常
private List<ApiKey> securitySchemes() {
return newArrayList(
new ApiKey(AccessToken.getKey(), AccessToken.getKey(), "header"));
}
private List<SecurityContext> securityContexts() {
return newArrayList(
SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("^(?!auth).*$"))
.build()
);
}
List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return newArrayList(
new SecurityReference("Authorization", authorizationScopes));
}
public List<ResponseMessage> globalResponse(){
List<ResponseMessage> responseMessageList = Lists.newArrayList();
//通用异常
ResponseMessage fail = new ResponseMessageBuilder()
.code(SysCode.FAIL).message("请求失败")
.responseModel(new ModelRef(clzName)).build();
responseMessageList.add(fail);
//登录异常
SysCode.Login[] logins = SysCode.Login.values();
for (SysCode.Login login: logins) {
ResponseMessage loginResponse = new ResponseMessageBuilder()
.code(login.getCode())
.message(login.getMsg())
.responseModel(new ModelRef(clzName)).build();
responseMessageList.add(loginResponse);
}
//前端请求异常
SysCode.Front[] fronts = SysCode.Front.values();
for (SysCode.Front front:fronts) {
ResponseMessage frontResp = new ResponseMessageBuilder()
.code(front.getCode())
.message(front.getMsg())
.responseModel(new ModelRef(clzName)).build();
responseMessageList.add(frontResp);
}
//数据库异常
SysCode.Database[] databases = SysCode.Database.values();
for (SysCode.Database database: databases) {
ResponseMessage databaseResponse = new ResponseMessageBuilder()
.code(database.getCode())
.message(database.getMsg())
.responseModel(new ModelRef(clzName)).build();
responseMessageList.add(databaseResponse);
}
return responseMessageList;
}
版权声明:本文为fanghuainihao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。