Skip to content

Commit 41d144c

Browse files
JeffLi1993liqiangqiang
authored andcommitted
支持全局响应消息
1 parent cd6d750 commit 41d144c

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

src/main/java/com/spring4all/swagger/SwaggerAutoConfiguration.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
import org.springframework.context.annotation.Bean;
1313
import org.springframework.context.annotation.Configuration;
1414
import org.springframework.context.annotation.Import;
15-
import springfox.documentation.builders.ApiInfoBuilder;
16-
import springfox.documentation.builders.ParameterBuilder;
17-
import springfox.documentation.builders.PathSelectors;
18-
import springfox.documentation.builders.RequestHandlerSelectors;
15+
import org.springframework.util.StringUtils;
16+
import springfox.documentation.builders.*;
1917
import springfox.documentation.schema.ModelRef;
2018
import springfox.documentation.service.ApiInfo;
2119
import springfox.documentation.service.Contact;
2220
import springfox.documentation.service.Parameter;
21+
import springfox.documentation.service.ResponseMessage;
2322
import springfox.documentation.spi.DocumentationType;
23+
import org.springframework.web.bind.annotation.RequestMethod;
2424
import springfox.documentation.spring.web.plugins.Docket;
2525

2626
import java.util.*;
@@ -82,21 +82,37 @@ public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
8282
excludePath.add(PathSelectors.ant(path));
8383
}
8484

85-
Docket docket = new Docket(DocumentationType.SWAGGER_2)
85+
Docket docketForBuilder = new Docket(DocumentationType.SWAGGER_2)
8686
.host(swaggerProperties.getHost())
8787
.apiInfo(apiInfo)
8888
.globalOperationParameters(buildGlobalOperationParametersFromSwaggerProperties(
89-
swaggerProperties.getGlobalOperationParameters()))
90-
.select()
89+
swaggerProperties.getGlobalOperationParameters()));
90+
91+
// 全局响应消息
92+
if (!swaggerProperties.getApplyDefaultResponseMessages()) {
93+
94+
ResponseMessageBuilder responseMessageBuilder401 = new ResponseMessageBuilder()
95+
.code(401)
96+
.message(swaggerProperties.getGlobalResponseMessage().getMessage401());
97+
if (!StringUtils.isEmpty(swaggerProperties.getGlobalResponseMessage().getModelRef401()))
98+
responseMessageBuilder401.responseModel(
99+
new ModelRef(swaggerProperties.getGlobalResponseMessage().getModelRef401()));
100+
101+
102+
List<ResponseMessage> responseMessages = new ArrayList();
103+
responseMessages.add(responseMessageBuilder401.build());
104+
docketForBuilder.useDefaultResponseMessages(swaggerProperties.getApplyDefaultResponseMessages())
105+
.globalResponseMessage(RequestMethod.GET,responseMessages);
106+
}
107+
108+
Docket docket = docketForBuilder.select()
91109
.apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()))
92110
.paths(
93111
Predicates.and(
94112
Predicates.not(Predicates.or(excludePath)),
95113
Predicates.or(basePath)
96114
)
97-
)
98-
.build();
99-
115+
).build();
100116
configurableBeanFactory.registerSingleton("defaultDocket", docket);
101117
docketList.add(docket);
102118
return docketList;

src/main/java/com/spring4all/swagger/SwaggerProperties.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ public class SwaggerProperties {
5454
/**全局参数配置**/
5555
private List<GlobalOperationParameter> globalOperationParameters;
5656

57+
/** 是否使用默认预定义的响应消息 ,默认 true **/
58+
private Boolean applyDefaultResponseMessages = true;
59+
60+
/** 全局响应消息 ,目前支持 GET **/
61+
private GlobalResponseMessage globalResponseMessage;
5762

5863
@Data
5964
@NoArgsConstructor
@@ -119,6 +124,17 @@ public static class Contact {
119124

120125
}
121126

127+
@Data
128+
@NoArgsConstructor
129+
public static class GlobalResponseMessage {
130+
131+
/** 401 响应消息 **/
132+
private String message401;
133+
134+
/** 401 响应体 **/
135+
private String modelRef401;
136+
}
137+
122138
}
123139

124140

0 commit comments

Comments
 (0)