Browse Source

支持swagger注解

sunlightcs 7 years ago
parent
commit
1ca75cba89

+ 11 - 0
pom.xml

@ -33,6 +33,7 @@
33 33
		<qiniu.version>[7.2.0, 7.2.99]</qiniu.version>
34 34
		<aliyun.oss.version>2.5.0</aliyun.oss.version>
35 35
		<qcloud.cos.version>4.4</qcloud.cos.version>
36
		<swagger.version>2.2.2</swagger.version>
36 37
37 38
		<!--wagon plugin 配置-->
38 39
		<service-path>/work/renren</service-path>
@ -145,6 +146,16 @@
145 146
			<artifactId>kaptcha</artifactId>
146 147
			<version>${kaptcha.version}</version>
147 148
		</dependency>
149
		<dependency>
150
			<groupId>io.springfox</groupId>
151
			<artifactId>springfox-swagger2</artifactId>
152
			<version>${swagger.version}</version>
153
		</dependency>
154
		<dependency>
155
			<groupId>io.springfox</groupId>
156
			<artifactId>springfox-swagger-ui</artifactId>
157
			<version>${swagger.version}</version>
158
		</dependency>
148 159
		<dependency>
149 160
			<groupId>com.qiniu</groupId>
150 161
			<artifactId>qiniu-java-sdk</artifactId>

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

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

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

@ -0,0 +1,46 @@
1
package io.renren.config;
2
3
import io.swagger.annotations.ApiOperation;
4
import org.springframework.context.annotation.Bean;
5
import org.springframework.context.annotation.Configuration;
6
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
7
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
8
import springfox.documentation.builders.ApiInfoBuilder;
9
import springfox.documentation.builders.PathSelectors;
10
import springfox.documentation.builders.RequestHandlerSelectors;
11
import springfox.documentation.service.ApiInfo;
12
import springfox.documentation.spi.DocumentationType;
13
import springfox.documentation.spring.web.plugins.Docket;
14
import springfox.documentation.swagger2.annotations.EnableSwagger2;
15
16
@Configuration
17
@EnableSwagger2
18
public class SwaggerConfig extends WebMvcConfigurerAdapter {
19
20
    @Override
21
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
22
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
23
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
24
    }
25
26
    @Bean
27
    public Docket createRestApi() {
28
        return new Docket(DocumentationType.SWAGGER_2)
29
            .apiInfo(apiInfo())
30
            .select()
31
            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))           //加了ApiOperation注解的方法,生成接口文档
32
            //.apis(RequestHandlerSelectors.basePackage("io.renren.modules.job.controller"))  //包下的类,生成接口文档
33
            .paths(PathSelectors.any())
34
            .build();
35
    }
36
37
    private ApiInfo apiInfo() {
38
        return new ApiInfoBuilder()
39
            .title("人人开源")
40
            .description("renren-fast文档")
41
            .termsOfServiceUrl("http://www.renren.io")
42
            .version("1.3")
43
            .build();
44
    }
45
46
}

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

@ -1,10 +1,12 @@
1 1
package io.renren.modules.app.controller;
2 2
3 3
4
import io.renren.modules.app.utils.JwtUtils;
5 4
import io.renren.common.utils.R;
6 5
import io.renren.common.validator.Assert;
7 6
import io.renren.modules.app.service.UserService;
7
import io.renren.modules.app.utils.JwtUtils;
8
import io.swagger.annotations.Api;
9
import io.swagger.annotations.ApiOperation;
8 10
import org.springframework.beans.factory.annotation.Autowired;
9 11
import org.springframework.web.bind.annotation.PostMapping;
10 12
import org.springframework.web.bind.annotation.RequestMapping;
@ -22,6 +24,7 @@ import java.util.Map;
22 24
 */
23 25
@RestController
24 26
@RequestMapping("/app")
27
@Api("APP登录接口")
25 28
public class ApiLoginController {
26 29
    @Autowired
27 30
    private UserService userService;
@ -32,6 +35,7 @@ public class ApiLoginController {
32 35
     * 登录
33 36
     */
34 37
    @PostMapping("login")
38
    @ApiOperation("登录")
35 39
    public R login(String mobile, String password){
36 40
        Assert.isBlank(mobile, "手机号不能为空");
37 41
        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;
4 4
import io.renren.common.utils.R;
5 5
import io.renren.common.validator.Assert;
6 6
import io.renren.modules.app.service.UserService;
7
import io.swagger.annotations.Api;
8
import io.swagger.annotations.ApiOperation;
7 9
import org.springframework.beans.factory.annotation.Autowired;
8 10
import org.springframework.web.bind.annotation.PostMapping;
9 11
import org.springframework.web.bind.annotation.RequestMapping;
@ -17,14 +19,13 @@ import org.springframework.web.bind.annotation.RestController;
17 19
 */
18 20
@RestController
19 21
@RequestMapping("/app")
22
@Api("APP注册接口")
20 23
public class ApiRegisterController {
21 24
    @Autowired
22 25
    private UserService userService;
23 26
24
    /**
25
     * 注册
26
     */
27 27
    @PostMapping("register")
28
    @ApiOperation("注册")
28 29
    public R register(String mobile, String password){
29 30
        Assert.isBlank(mobile, "手机号不能为空");
30 31
        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;
5 5
import io.renren.modules.app.annotation.Login;
6 6
import io.renren.modules.app.annotation.LoginUser;
7 7
import io.renren.modules.app.entity.UserEntity;
8
import io.swagger.annotations.Api;
9
import io.swagger.annotations.ApiOperation;
8 10
import org.springframework.web.bind.annotation.GetMapping;
9 11
import org.springframework.web.bind.annotation.RequestAttribute;
10 12
import org.springframework.web.bind.annotation.RequestMapping;
@ -19,30 +21,25 @@ import org.springframework.web.bind.annotation.RestController;
19 21
 */
20 22
@RestController
21 23
@RequestMapping("/app")
24
@Api("APP测试接口")
22 25
public class ApiTestController {
23 26
24
    /**
25
     * 获取用户信息
26
     */
27 27
    @Login
28 28
    @GetMapping("userInfo")
29
    @ApiOperation("获取用户信息")
29 30
    public R userInfo(@LoginUser UserEntity user){
30 31
        return R.ok().put("user", user);
31 32
    }
32 33
33
    /**
34
     * 获取用户ID
35
     */
36 34
    @Login
37 35
    @GetMapping("userId")
36
    @ApiOperation("获取用户ID")
38 37
    public R userInfo(@RequestAttribute("userId") Integer userId){
39 38
        return R.ok().put("userId", userId);
40 39
    }
41 40
42
    /**
43
     * 忽略Token验证测试
44
     */
45 41
    @GetMapping("notToken")
42
    @ApiOperation("忽略Token验证测试")
46 43
    public R notToken(){
47 44
        return R.ok().put("msg", "无需token也能访问。。。");
48 45
    }

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

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

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

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