From ba23e55bce63d3ab04205dea37360426c16482bf Mon Sep 17 00:00:00 2001 From: didi Date: Thu, 24 Aug 2017 10:03:13 +0800 Subject: [PATCH 1/4] =?UTF-8?q?1.3.0=20=E5=A2=9E=E5=8A=A0JSR=20303?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 ++++++- src/main/java/com/didispace/swagger/EnableSwagger2Doc.java | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index cea4d0a..19d5ea0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.didispace spring-boot-starter-swagger - 1.2.0.RELEASE + 1.3.0.SNAPSHOT spring-boot-starter-swagger https://github.com/dyc87112/spring-boot-starter-swagger @@ -68,6 +68,11 @@ springfox-swagger2 ${version.swagger} + + io.springfox + springfox-bean-validators + ${version.swagger} + org.projectlombok lombok diff --git a/src/main/java/com/didispace/swagger/EnableSwagger2Doc.java b/src/main/java/com/didispace/swagger/EnableSwagger2Doc.java index 60edb6b..01b5741 100644 --- a/src/main/java/com/didispace/swagger/EnableSwagger2Doc.java +++ b/src/main/java/com/didispace/swagger/EnableSwagger2Doc.java @@ -1,6 +1,7 @@ package com.didispace.swagger; import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.lang.annotation.*; @@ -15,7 +16,7 @@ @Documented @Inherited @EnableSwagger2 -@Import(SwaggerAutoConfiguration.class) +@Import({SwaggerAutoConfiguration.class, BeanValidatorPluginsConfiguration.class}) public @interface EnableSwagger2Doc { From 70fc6714cb550d937e8707a149387be78a1283da Mon Sep 17 00:00:00 2001 From: didi Date: Thu, 24 Aug 2017 10:17:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?1.3.0=20=E5=A2=9E=E5=8A=A0JSR=20303?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1a15587..c7decff 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,12 @@ 该项目主要利用Spring Boot的自动化配置特性来实现快速的将swagger2引入spring boot应用来生成API文档,简化原生使用swagger2的整合代码。 -- GitHub:https://github.com/dyc87112/spring-boot-starter-swagger -- 码云:http://git.oschina.net/didispace/spring-boot-starter-swagger -- 博客:http://blog.didispace.com +- 源码地址 + - GitHub:https://github.com/dyc87112/spring-boot-starter-swagger + - 码云:https://gitee.com/didispace/spring-boot-starter-swagger +- 使用样例:https://github.com/dyc87112/swagger-starter-demo +- 我的博客:http://blog.didispace.com +- 我们社区:http://spring4all.com **小工具一枚,欢迎使用和Star支持,如使用过程中碰到问题,可以提出Issue,我会尽力完善该Starter** @@ -23,7 +26,7 @@ com.didispace spring-boot-starter-swagger - 1.2.0.RELEASE + 1.3.0.RELEASE ``` @@ -52,7 +55,7 @@ public class Bootstrap { ```properties swagger.title=spring-boot-starter-swagger swagger.description=Starter for swagger 2.x -swagger.version=1.1.0.RELEASE +swagger.version=1.3.0.RELEASE swagger.license=Apache License, Version 2.0 swagger.licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.html swagger.termsOfServiceUrl=https://github.com/dyc87112/spring-boot-starter-swagger @@ -139,4 +142,8 @@ swagger.docket.bbb.title=group-bbb swagger.docket.bbb.basePackage=com.yonghui ``` -说明:默认配置与分组配置可以一起使用。在分组配置中没有配置的内容将使用默认配置替代,所以默认配置可以作为分组配置公共部分属性的配置。 \ No newline at end of file +说明:默认配置与分组配置可以一起使用。在分组配置中没有配置的内容将使用默认配置替代,所以默认配置可以作为分组配置公共部分属性的配置。 + +### JSR-303校验注解支持 + +TODO 待完善内容 \ No newline at end of file From 28443bf8d91d20e93c52e46c6f90769f903b5b70 Mon Sep 17 00:00:00 2001 From: xiaohuo Date: Thu, 24 Aug 2017 23:32:40 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1.3.0=20=E5=A2=9E=E5=8A=A0host?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/didispace/swagger/SwaggerAutoConfiguration.java | 2 ++ src/main/java/com/didispace/swagger/SwaggerProperties.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/main/java/com/didispace/swagger/SwaggerAutoConfiguration.java b/src/main/java/com/didispace/swagger/SwaggerAutoConfiguration.java index 66dbee4..d1689be 100644 --- a/src/main/java/com/didispace/swagger/SwaggerAutoConfiguration.java +++ b/src/main/java/com/didispace/swagger/SwaggerAutoConfiguration.java @@ -73,6 +73,7 @@ public List createRestApi(SwaggerProperties swaggerProperties) { } Docket docket = new Docket(DocumentationType.SWAGGER_2) + .host(swaggerProperties.getHost()) .apiInfo(apiInfo) .select() .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage())) @@ -126,6 +127,7 @@ public List createRestApi(SwaggerProperties swaggerProperties) { } Docket docket = new Docket(DocumentationType.SWAGGER_2) + .host(swaggerProperties.getHost()) .apiInfo(apiInfo) .groupName(groupName) .select() diff --git a/src/main/java/com/didispace/swagger/SwaggerProperties.java b/src/main/java/com/didispace/swagger/SwaggerProperties.java index 78a9877..cafc22d 100644 --- a/src/main/java/com/didispace/swagger/SwaggerProperties.java +++ b/src/main/java/com/didispace/swagger/SwaggerProperties.java @@ -44,6 +44,9 @@ public class SwaggerProperties { /**分组文档**/ private Map docket = new LinkedHashMap<>(); + /**host信息**/ + private String host = ""; + @Data @NoArgsConstructor public static class DocketInfo { From 7e0bf58fbcf53953e320defcd862e8f41ff540bf Mon Sep 17 00:00:00 2001 From: didi Date: Sat, 26 Aug 2017 23:17:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1.3.0=20=E6=96=87=E6=A1=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 25 +++++++++++++++++++++++-- images/jsr-303.png | Bin 0 -> 41866 bytes pom.xml | 7 ++++++- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 images/jsr-303.png diff --git a/README.md b/README.md index c7decff..cac7b23 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ swagger.exclude-path=/error, /ops/** ### 默认配置 +``` - swagger.title=标题 - swagger.description=描述 - swagger.version=版本 @@ -83,6 +84,10 @@ swagger.exclude-path=/error, /ops/** - swagger.base-package=swagger扫描的基础包,默认:全扫描 - swagger.base-path=需要处理的基础URL规则,默认:/** - swagger.exclude-path=需要排除的URL规则,默认:空 +- swagger.host=文档的host信息,默认:空 +``` + +**host属性从1.3.0.RELEASE开始支持** ### Path规则说明 @@ -111,6 +116,7 @@ swagger.exclude-path=/ops/**, /error 具体配置内容如下: +``` - swagger.docket..title=标题 - swagger.docket..description=描述 - swagger.docket..version=版本 @@ -123,6 +129,7 @@ swagger.exclude-path=/ops/**, /error - swagger.docket..base-package=swagger扫描的基础包,默认:全扫描 - swagger.docket..base-path=需要处理的基础URL规则,默认:/** - swagger.docket..exclude-path=需要排除的URL规则,默认:空 +``` 说明:``为swagger文档的分组名称,同一个项目中可以配置多个分组,用来划分不同的API文档。 @@ -131,7 +138,7 @@ swagger.exclude-path=/ops/**, /error ```properties swagger.docket.aaa.title=group-a swagger.docket.aaa.description=Starter for swagger 2.x -swagger.docket.aaa.version=1.2.0.RELEASE +swagger.docket.aaa.version=1.3.0.RELEASE swagger.docket.aaa.termsOfServiceUrl=https://gitee.com/didispace/spring-boot-starter-swagger swagger.docket.aaa.contact.name=zhaiyongchao swagger.docket.aaa.contact.url=http://spring4all.com/ @@ -146,4 +153,18 @@ swagger.docket.bbb.basePackage=com.yonghui ### JSR-303校验注解支持 -TODO 待完善内容 \ No newline at end of file +支持对JSR-303校验注解的展示,如下图所示: + +![JSR-303校验展示](https://github.com/dyc87112/spring-boot-starter-swagger/blob/master/images/jsr-303.png) + +目前共支持以下几个注解: + +- `@NotNull` +- `@Max、@Min` +- `@Size` +- `@Pattern` + +## 贡献者 + +- [程序猿DD-翟永超](https://github.com/dyc87112/) +- [小火](https://renlulu.github.io/) \ No newline at end of file diff --git a/images/jsr-303.png b/images/jsr-303.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9c53ac24ba98abdc2a7f02020ca4390788b637 GIT binary patch literal 41866 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 19d5ea0..e021185 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.didispace spring-boot-starter-swagger - 1.3.0.SNAPSHOT + 1.3.0.RELEASE spring-boot-starter-swagger https://github.com/dyc87112/spring-boot-starter-swagger @@ -38,6 +38,11 @@ dyc87112@qq.com http://didispace.com + + 小火 + xiaohuo200@gmail.com + https://renlulu.github.io/ +