Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6b52b80

Browse files
author
fengdan
committed
实现全局Request参数的配置 #201
1 parent dabad03 commit 6b52b80

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

‎src/main/java/com/spring4all/swagger/DocketConfiguration.java‎

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
package com.spring4all.swagger;
22

33
import com.google.common.base.Predicates;
4+
import lombok.RequiredArgsConstructor;
45
import org.springframework.context.annotation.Bean;
56
import org.springframework.context.annotation.Configuration;
67
import springfox.documentation.builders.ApiInfoBuilder;
78
import springfox.documentation.builders.RequestHandlerSelectors;
9+
import springfox.documentation.builders.RequestParameterBuilder;
10+
import springfox.documentation.schema.ScalarType;
811
import springfox.documentation.service.ApiInfo;
912
import springfox.documentation.service.Contact;
13+
import springfox.documentation.service.RequestParameter;
1014
import springfox.documentation.spi.DocumentationType;
1115
import springfox.documentation.spring.web.plugins.Docket;
1216

1317
import java.util.ArrayList;
1418
import java.util.Collections;
1519
import java.util.List;
1620
import java.util.function.Predicate;
21+
import java.util.stream.Collectors;
22+
23+
import static java.util.Collections.singletonList;
1724

1825
/**
1926
* @author 翟永超
@@ -54,13 +61,36 @@ public Docket createRestApi() {
5461

5562
// 需要生成文档的接口目标配置
5663
Docket docket = builder.select()
57-
.apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage())) // 通过扫描包选择接口
58-
.paths(paths(swaggerProperties)) // 通过路径匹配选择接口
59-
.build();
64+
// 通过扫描包选择接口
65+
.apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()))
66+
// 通过路径匹配选择接口
67+
.paths(paths(swaggerProperties))
68+
.build()
69+
.globalRequestParameters(globalRequestParameters(swaggerProperties));
6070

6171
return docket;
6272
}
6373

74+
75+
/**
76+
* 全局请求参数
77+
*
78+
* @param swaggerProperties {@link SwaggerProperties}
79+
* @return RequestParameter {@link RequestParameter}
80+
*/
81+
private List<RequestParameter> globalRequestParameters(SwaggerProperties swaggerProperties) {
82+
return swaggerProperties.getGlobalOperationParameters().stream().map(param -> {
83+
return new RequestParameterBuilder()
84+
.name(param.getName())
85+
.description(param.getDescription())
86+
.in(param.getParameterType())
87+
.required(param.getRequired())
88+
.query(q -> q.defaultValue(param.getModelRef()))
89+
.query(q -> q.model(m -> m.scalarModel(ScalarType.STRING)))
90+
.build();
91+
}).collect(Collectors.toList());
92+
}
93+
6494
/**
6595
* API接口路径选择
6696
*
@@ -74,13 +104,13 @@ private Predicate paths(SwaggerProperties swaggerProperties) {
74104
if (swaggerProperties.getBasePath().isEmpty()) {
75105
swaggerProperties.getBasePath().add("/**");
76106
}
77-
List<com.google.common.base.Predicate<String>> basePath = new ArrayList();
107+
List<com.google.common.base.Predicate<String>> basePath = new ArrayList<>();
78108
for (String path : swaggerProperties.getBasePath()) {
79109
basePath.add(PathSelectors.ant(path));
80110
}
81111

82112
// exclude-path处理
83-
List<com.google.common.base.Predicate<String>> excludePath = new ArrayList();
113+
List<com.google.common.base.Predicate<String>> excludePath = new ArrayList<>();
84114
for (String path : swaggerProperties.getExcludePath()) {
85115
excludePath.add(PathSelectors.ant(path));
86116
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,14 @@ public static class GlobalOperationParameter {
101101
private String modelRef;
102102

103103
/**
104-
* 参数放在哪个地方:header,query,path,body.form
104+
* 参数放在哪个地方:header,query,path,formData,cookie,form
105105
**/
106106
private String parameterType;
107107

108108
/**
109109
* 参数是否必须传
110110
**/
111-
private String required;
111+
private Boolean required;
112112

113113
}
114114

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /