Skip to content

Commit 2e011d1

Browse files
committed
#12 增加“try it out”按钮的开关控制
1 parent b7836c2 commit 2e011d1

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66

77
<groupId>com.spring4all</groupId>
8-
<artifactId>spring-boot-starter-swagger</artifactId>
8+
<artifactId>swagger-spring-boot-starter</artifactId>
99
<version>1.6.0-SNAPSHOT</version>
1010

1111
<name>spring-boot-starter-swagger</name>

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,23 @@
77
import org.springframework.beans.factory.BeanFactory;
88
import org.springframework.beans.factory.BeanFactoryAware;
99
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1011
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1112
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1213
import org.springframework.context.annotation.Bean;
1314
import org.springframework.context.annotation.Configuration;
1415
import org.springframework.context.annotation.Import;
1516
import org.springframework.util.StringUtils;
17+
import org.springframework.web.bind.annotation.RequestMethod;
1618
import springfox.documentation.builders.*;
1719
import springfox.documentation.schema.ModelRef;
1820
import springfox.documentation.service.ApiInfo;
1921
import springfox.documentation.service.Contact;
2022
import springfox.documentation.service.Parameter;
2123
import springfox.documentation.service.ResponseMessage;
2224
import springfox.documentation.spi.DocumentationType;
23-
import org.springframework.web.bind.annotation.RequestMethod;
2425
import springfox.documentation.spring.web.plugins.Docket;
26+
import springfox.documentation.swagger.web.UiConfiguration;
2527

2628
import java.util.*;
2729
import java.util.stream.Collectors;
@@ -45,8 +47,22 @@ public SwaggerProperties swaggerProperties() {
4547
return new SwaggerProperties();
4648
}
4749

50+
@Bean
51+
public UiConfiguration uiConfiguration(SwaggerProperties swaggerProperties) {
52+
return new UiConfiguration(
53+
swaggerProperties.getUiConfig().getValidatorUrl(),// url
54+
swaggerProperties.getUiConfig().getDocExpansion(), // docExpansion => none | list
55+
swaggerProperties.getUiConfig().getApiSorter(), // apiSorter => alpha
56+
swaggerProperties.getUiConfig().getDefaultModelRendering(), // defaultModelRendering => schema
57+
swaggerProperties.getUiConfig().getSubmitMethods().split(","),
58+
swaggerProperties.getUiConfig().getJsonEditor(), // enableJsonEditor => true | false
59+
swaggerProperties.getUiConfig().getShowRequestHeaders(), // showRequestHeaders => true | false
60+
swaggerProperties.getUiConfig().getRequestTimeout()); // requestTimeout => in milliseconds, defaults to null (uses jquery xh timeout)
61+
}
62+
4863
@Bean
4964
@ConditionalOnMissingBean
65+
@ConditionalOnBean(UiConfiguration.class)
5066
@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
5167
public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
5268
ConfigurableBeanFactory configurableBeanFactory = (ConfigurableBeanFactory) beanFactory;

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

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

56+
/** 页面功能配置 **/
57+
private UiConfig uiConfig = new UiConfig();
58+
5659
/** 是否使用默认预定义的响应消息 ,默认 true **/
5760
private Boolean applyDefaultResponseMessages = true;
5861

5962
/** 全局响应消息 **/
6063
private GlobalResponseMessage globalResponseMessage;
6164

65+
6266
@Data
6367
@NoArgsConstructor
6468
public static class GlobalOperationParameter{
@@ -168,6 +172,27 @@ public static class GlobalResponseMessageBody {
168172

169173
}
170174

175+
176+
@Data
177+
@NoArgsConstructor
178+
public static class UiConfig {
179+
180+
private String validatorUrl;
181+
private String docExpansion = "none"; // none | list
182+
private String apiSorter = "alpha"; // alpha
183+
private String defaultModelRendering = "schema"; // schema
184+
185+
/** 是否启用json编辑器 **/
186+
private Boolean jsonEditor = false;
187+
/** 是否显示请求头信息 **/
188+
private Boolean showRequestHeaders = true;
189+
/** 支持页面提交的请求类型 **/
190+
private String submitMethods = "get,post,put,delete,patch";
191+
/** 请求超时时间 **/
192+
private Long requestTimeout = 10000L;
193+
194+
}
195+
171196
}
172197

173198

0 commit comments

Comments
 (0)