From acb459a74b7af5c0f0ef5842b72549c9a8136e29 Mon Sep 17 00:00:00 2001 From: Junling Bu Date: Thu, 4 Jun 2020 16:00:09 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=BC=95=E5=85=A5swagger-bootstrap-ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/litemall/application.yml | 5 ++++- doc/api.md | 17 ++++++++++++++++- docker/litemall/application.yml | 5 ++++- litemall-admin-api/pom.xml | 5 +++++ .../config/AdminSwagger2Configuration.java | 3 +++ .../litemall/admin/config/ShiroConfig.java | 8 +------- .../src/main/resources/application.yml | 5 ++++- litemall-all/src/main/resources/application.yml | 5 ++++- .../wx/config/WxSwagger2Configuration.java | 2 ++ .../src/main/resources/application.yml | 5 ++++- pom.xml | 4 ++-- 11 files changed, 49 insertions(+), 15 deletions(-) diff --git a/deploy/litemall/application.yml b/deploy/litemall/application.yml index 0d9eb679..a3b9d922 100644 --- a/deploy/litemall/application.yml +++ b/deploy/litemall/application.yml @@ -142,4 +142,7 @@ litemall: endpoint: http://pd5cb6ulu.bkt.clouddn.com accessKey: 111111 secretKey: xxxxxx - bucketName: litemall \ No newline at end of file + bucketName: litemall + +swagger: + production: true \ No newline at end of file diff --git a/doc/api.md b/doc/api.md index e6a285d6..fdaa4a23 100644 --- a/doc/api.md +++ b/doc/api.md @@ -439,11 +439,26 @@ API应该存在版本控制,以保证兼容性。 造成代码不是很简洁。特别是具备代码属性的注解和Swagger文档注解混杂在一起,可能不是很好。 当然,本项目也简单地配置了Swagger(见`WxSwagger2Configuration`和`AdminSwagger2Configuration`), -在线Swagger文档链接:http://122.51.199.160:8080/swagger-ui.html +* 在线Swagger文档链接:http://122.51.199.160:8080/swagger-ui.html +* 本地Swagger文档链接:http://localhost:8080/swagger-ui.html + +此外,也使用了swagger-bootstrap-ui对Swagger进一步增强了使用效果。 +* 在线swagger-bootstrap-ui文档链接:http://122.51.199.160:8080/doc.html +* 本地swagger-bootstrap-ui文档链接:http://localhost:8080/doc.html 当然正如上文讨论,本项目不是很接受Swagger的理念,所以后端没有使用Swagger的相关文档注解, 这也导致了Swagger接口文档的不具可读性。如果开发者需要,可以自行在后端补充Swagger注解。 +需要注意的是: +> 这里接口默认是公开的,因此项目一旦需要上线,请及时删除swagger和swagger-bootstrap-ui依赖和配置, +> 或者采取其他手段,防止接口对外暴露造成**安全隐患**。 + +例如 +``` +swagger: + production: false +``` + ## 2 商城API服务 ### 2.1 安全服务 diff --git a/docker/litemall/application.yml b/docker/litemall/application.yml index 2be1cde8..a28dd8b5 100644 --- a/docker/litemall/application.yml +++ b/docker/litemall/application.yml @@ -142,4 +142,7 @@ litemall: endpoint: http://pd5cb6ulu.bkt.clouddn.com accessKey: 111111 secretKey: xxxxxx - bucketName: litemall \ No newline at end of file + bucketName: litemall + +swagger: + production: true \ No newline at end of file diff --git a/litemall-admin-api/pom.xml b/litemall-admin-api/pom.xml index 564a85e2..5afd40cc 100644 --- a/litemall-admin-api/pom.xml +++ b/litemall-admin-api/pom.xml @@ -40,6 +40,11 @@ org.apache.shiro shiro-spring-boot-web-starter + + com.github.xiaoymin + swagger-bootstrap-ui + 1.9.6 + diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/AdminSwagger2Configuration.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/AdminSwagger2Configuration.java index b3027ff3..e16ba1ba 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/AdminSwagger2Configuration.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/AdminSwagger2Configuration.java @@ -1,7 +1,9 @@ package org.linlinjava.litemall.admin.config; +import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; @@ -20,6 +22,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 +@EnableSwaggerBootstrapUI public class AdminSwagger2Configuration { @Bean public Docket adminDocket() { diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/ShiroConfig.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/ShiroConfig.java index 6630da53..18b9b257 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/ShiroConfig.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/config/ShiroConfig.java @@ -33,13 +33,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/admin/auth/401", "anon"); filterChainDefinitionMap.put("/admin/auth/index", "anon"); filterChainDefinitionMap.put("/admin/auth/403", "anon"); - filterChainDefinitionMap.put("/admin/index/index", "anon"); - filterChainDefinitionMap.put("/swagger-ui.html", "anon"); - filterChainDefinitionMap.put("/swagger-resources", "anon"); - filterChainDefinitionMap.put("/swagger-resources/configuration/security", "anon"); - filterChainDefinitionMap.put("/swagger-resources/configuration/ui", "anon"); - filterChainDefinitionMap.put("/v2/api-docs", "anon"); - filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon"); + filterChainDefinitionMap.put("/admin/index/*", "anon"); filterChainDefinitionMap.put("/admin/**", "authc"); shiroFilterFactoryBean.setLoginUrl("/admin/auth/401"); diff --git a/litemall-admin-api/src/main/resources/application.yml b/litemall-admin-api/src/main/resources/application.yml index 1b40f0ba..d3ca4367 100644 --- a/litemall-admin-api/src/main/resources/application.yml +++ b/litemall-admin-api/src/main/resources/application.yml @@ -13,4 +13,7 @@ logging: org.springframework: ERROR org.mybatis: ERROR org.linlinjava.litemall.admin: DEBUG - org.linlinjava.litemall: ERROR \ No newline at end of file + org.linlinjava.litemall: ERROR + +swagger: + production: false \ No newline at end of file diff --git a/litemall-all/src/main/resources/application.yml b/litemall-all/src/main/resources/application.yml index f414da94..6caba810 100644 --- a/litemall-all/src/main/resources/application.yml +++ b/litemall-all/src/main/resources/application.yml @@ -16,4 +16,7 @@ server: mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain logging: - config: classpath:logback-spring.xml \ No newline at end of file + config: classpath:logback-spring.xml + +swagger: + production: false \ No newline at end of file diff --git a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/config/WxSwagger2Configuration.java b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/config/WxSwagger2Configuration.java index 893ed341..f7a8b6aa 100644 --- a/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/config/WxSwagger2Configuration.java +++ b/litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/config/WxSwagger2Configuration.java @@ -1,5 +1,6 @@ package org.linlinjava.litemall.wx.config; +import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; @@ -20,6 +21,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 +@EnableSwaggerBootstrapUI public class WxSwagger2Configuration { @Bean public Docket wxDocket() { diff --git a/litemall-wx-api/src/main/resources/application.yml b/litemall-wx-api/src/main/resources/application.yml index 98362c18..8e1cb859 100644 --- a/litemall-wx-api/src/main/resources/application.yml +++ b/litemall-wx-api/src/main/resources/application.yml @@ -13,4 +13,7 @@ logging: org.springframework: ERROR org.mybatis: ERROR org.linlinjava.litemall.wx: DEBUG - org.linlinjava.litemall: ERROR \ No newline at end of file + org.linlinjava.litemall: ERROR + +swagger: + production: false \ No newline at end of file diff --git a/pom.xml b/pom.xml index 41f68213..6f01efc4 100644 --- a/pom.xml +++ b/pom.xml @@ -159,14 +159,14 @@ com.github.xiaoymin swagger-bootstrap-ui - 1.9.3 + 1.9.6 com.google.guava guava 25.1-jre - + com.auth0 java-jwt