ソースを参照

springboot1.5.8集成swagger2

peiguo 5 年 前
コミット
26e3a595aa

+ 53 - 0
whepi-web/src/main/java/com/bofeng/config/SwaggerConfig.java

@@ -0,0 +1,53 @@
+package com.bofeng.config;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.RequestHandler;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import static springfox.documentation.builders.RequestHandlerSelectors.withMethodAnnotation;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+    // @EnableSwagger2 开启Swagger2
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .forCodeGeneration(true)
+                .useDefaultResponseMessages(false)
+                .select()
+                .apis(apis())
+                .build()
+                .useDefaultResponseMessages(false);
+    }
+
+    private Predicate<RequestHandler> apis() {
+        return Predicates.and(withMethodAnnotation(ApiOperation.class));
+    }
+
+    private Predicate<String> paths() {
+        return Predicates.and(
+                PathSelectors.regex("/.*"),
+                Predicates.not(PathSelectors.regex("/error"))
+        );
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .build();
+    }
+}
+
+
+

+ 21 - 0
whepi-web/src/main/java/com/bofeng/config/WebMvcConfig.java

@@ -0,0 +1,21 @@
+package com.bofeng.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+/**
+ * springboot 2.0以下需要处理静态资源路径映射
+ */
+@Configuration
+public class WebMvcConfig extends WebMvcConfigurerAdapter {
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+
+        registry.addResourceHandler("swagger-ui.html")
+                .addResourceLocations("classpath:/META-INF/resources/");
+
+        registry.addResourceHandler("/webjars/**")
+                .addResourceLocations("classpath:/META-INF/resources/webjars/");
+    }
+}

+ 3 - 3
whepi-web/src/main/java/com/bofeng/controller/RootController.java

@@ -35,7 +35,7 @@ public class RootController {
     }
 
 
-    @ApiOperation("获取当前用户信息")
+//    @ApiOperation("获取当前用户信息")
     @GetMapping("/me")
     public Model<ResultModel> me() {
         ResultModel model = new ResultModel()
@@ -46,7 +46,7 @@ public class RootController {
         return Model.newSuccess(model);
     }
 
-    @ApiOperation("time")
+//    @ApiOperation("time")
     @GetMapping("/time")
     public Model<Map<String, Long>> time(@Pd(name = "t1", desc = "客户端时间") Long t1) {
         Map<String, Long> timeRp = new LinkedHashMap<>();
@@ -66,7 +66,7 @@ public class RootController {
         return Model.newSuccess(timeRp);
     }
 
-    @ApiOperation("获取当前访问属性")
+//    @ApiOperation("获取当前访问属性")
     @GetMapping("/domain")
     public Model<JsonWapper> domain(HttpServletRequest request) {
         JsonWapper jw = new JsonWapper();

+ 0 - 1
whepi-web/src/main/java/com/bofeng/controller/UserController.java

@@ -51,7 +51,6 @@ public class UserController {
     @Autowired
     private PlaceService placeService;
 
-    @ApiOperation("注销")
     @GetMapping("/user/logout.html")
     @PostMapping("/user/logout.html")
     public ModelAndView logout() {

+ 6 - 0
whepi-web/src/main/java/com/bofeng/wx/controller/UserOpenController.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.yvan.platform.JsonWapper;
 import com.yvan.platform.YvanUtil;
 import com.yvan.springmvc.ResultModel;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -19,6 +20,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
 
+@Api("注册登陆")
 @RestController
 public class UserOpenController {
 
@@ -45,6 +47,10 @@ public class UserOpenController {
     @Autowired
     private MsReportService msReportService;
 
+    @ApiOperation("登陆首页")
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户ID", required = false, dataType = "Long",paramType="query"),
+            @ApiImplicitParam(name = "userType", value = "用户类型", required = false, dataType = "Integer",paramType="query")
+    })
     @GetMapping("/user/home.html")
     public ModelAndView home(ModelMap model, @RequestParam(value = "userId", required = false,defaultValue = "0") Long userId,
                              @RequestParam(value = "userType", required = false,defaultValue = "0") Integer userType) throws JsonProcessingException {

+ 1 - 0
yvan-platform/build.gradle

@@ -30,6 +30,7 @@ dependencies {
 
     compile 'org.springframework.boot:spring-boot-starter-freemarker'
     compile 'io.springfox:springfox-swagger2:2.9.2'
+    compile 'io.springfox:springfox-swagger-ui:2.9.2'
 }
 
 artifacts {