Quellcode durchsuchen

支持swagger注解

sunlightcs vor 7 Jahren
Ursprung
Commit
1ca75cba89

+ 11 - 0
pom.xml

@@ -33,6 +33,7 @@
 		<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
 		<aliyun.oss.version>2.5.0</aliyun.oss.version>
 		<qcloud.cos.version>4.4</qcloud.cos.version>
+		<swagger.version>2.2.2</swagger.version>
 
 		<!--wagon plugin 配置-->
 		<service-path>/work/renren</service-path>
@@ -146,6 +147,16 @@
 			<version>${kaptcha.version}</version>
 		</dependency>
 		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger2</artifactId>
+			<version>${swagger.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger-ui</artifactId>
+			<version>${swagger.version}</version>
+		</dependency>
+		<dependency>
 			<groupId>com.qiniu</groupId>
 			<artifactId>qiniu-java-sdk</artifactId>
 			<version>${qiniu.version}</version>

+ 3 - 0
src/main/java/io/renren/config/ShiroConfig.java

@@ -66,6 +66,9 @@ public class ShiroConfig {
         filterMap.put("/fonts/**", "anon");
         filterMap.put("/plugins/**", "anon");
         filterMap.put("/swagger/**", "anon");
+        filterMap.put("/v2/api-docs", "anon");
+        filterMap.put("/swagger-ui.html", "anon");
+        filterMap.put("/swagger-resources/**", "anon");
         filterMap.put("/favicon.ico", "anon");
         filterMap.put("/captcha.jpg", "anon");
         filterMap.put("/", "anon");

+ 46 - 0
src/main/java/io/renren/config/SwaggerConfig.java

@@ -0,0 +1,46 @@
+package io.renren.config;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig 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/");
+    }
+
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+            .apiInfo(apiInfo())
+            .select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))           //加了ApiOperation注解的方法,生成接口文档
+            //.apis(RequestHandlerSelectors.basePackage("io.renren.modules.job.controller"))  //包下的类,生成接口文档
+            .paths(PathSelectors.any())
+            .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+            .title("人人开源")
+            .description("renren-fast文档")
+            .termsOfServiceUrl("http://www.renren.io")
+            .version("1.3")
+            .build();
+    }
+
+}

+ 5 - 1
src/main/java/io/renren/modules/app/controller/ApiLoginController.java

@@ -1,10 +1,12 @@
 package io.renren.modules.app.controller;
 
 
-import io.renren.modules.app.utils.JwtUtils;
 import io.renren.common.utils.R;
 import io.renren.common.validator.Assert;
 import io.renren.modules.app.service.UserService;
+import io.renren.modules.app.utils.JwtUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,6 +24,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/app")
+@Api("APP登录接口")
 public class ApiLoginController {
     @Autowired
     private UserService userService;
@@ -32,6 +35,7 @@ public class ApiLoginController {
      * 登录
      */
     @PostMapping("login")
+    @ApiOperation("登录")
     public R login(String mobile, String password){
         Assert.isBlank(mobile, "手机号不能为空");
         Assert.isBlank(password, "密码不能为空");

+ 4 - 3
src/main/java/io/renren/modules/app/controller/ApiRegisterController.java

@@ -4,6 +4,8 @@ package io.renren.modules.app.controller;
 import io.renren.common.utils.R;
 import io.renren.common.validator.Assert;
 import io.renren.modules.app.service.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,14 +19,13 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/app")
+@Api("APP注册接口")
 public class ApiRegisterController {
     @Autowired
     private UserService userService;
 
-    /**
-     * 注册
-     */
     @PostMapping("register")
+    @ApiOperation("注册")
     public R register(String mobile, String password){
         Assert.isBlank(mobile, "手机号不能为空");
         Assert.isBlank(password, "密码不能为空");

+ 6 - 9
src/main/java/io/renren/modules/app/controller/ApiTestController.java

@@ -5,6 +5,8 @@ import io.renren.common.utils.R;
 import io.renren.modules.app.annotation.Login;
 import io.renren.modules.app.annotation.LoginUser;
 import io.renren.modules.app.entity.UserEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -19,30 +21,25 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/app")
+@Api("APP测试接口")
 public class ApiTestController {
 
-    /**
-     * 获取用户信息
-     */
     @Login
     @GetMapping("userInfo")
+    @ApiOperation("获取用户信息")
     public R userInfo(@LoginUser UserEntity user){
         return R.ok().put("user", user);
     }
 
-    /**
-     * 获取用户ID
-     */
     @Login
     @GetMapping("userId")
+    @ApiOperation("获取用户ID")
     public R userInfo(@RequestAttribute("userId") Integer userId){
         return R.ok().put("userId", userId);
     }
 
-    /**
-     * 忽略Token验证测试
-     */
     @GetMapping("notToken")
+    @ApiOperation("忽略Token验证测试")
     public R notToken(){
         return R.ok().put("msg", "无需token也能访问。。。");
     }

+ 2 - 1
src/main/resources/application.yml

@@ -39,7 +39,8 @@ spring:
 # Mybatis配置
 mybatis:
     mapperLocations: classpath:mapper/**/*.xml
-    configLocation: classpath:mybatis.xml
+    configuration:
+        map-underscore-to-camel-case: true
 
 renren:
     # APP模块,是通过jwt认证的,如果要使用APP模块,则需要修改【加密秘钥】

+ 0 - 8
src/main/resources/mybatis.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-config.dtd">
-<configuration>
-    <settings>
-        <setting name="mapUnderscoreToCamelCase" value="true" />
-    </settings>
-</configuration>