SpringBoot集成Swagger2


前言

本文实现了SpringBoot集成Swagger2,并优化UI界面及一些常用注解的介绍。


一、引入依赖

在pom文件中引入如下依赖:

 <!--Swagger2依赖-->
 <dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger2</artifactId>
     <version>2.9.2</version>
 </dependency>
 <dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger-ui</artifactId>
     <version>2.9.2</version>
 </dependency>

 <!--swagger UI美化-->
 <dependency>
     <groupId>com.github.xiaoymin</groupId>
     <artifactId>swagger-bootstrap-ui</artifactId>
     <version>1.9.3</version>
 </dependency>

二、配置与案例

1、配置文件

代码如下:

@Configuration
@EnableSwagger2 //开启Swagger
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//扫描类上有@Api注解的类
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(setHeaderToken());

    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("测试Swagger文档")//swagger文档的浏览器标题,类似于html里的title
                .description("Swagger实例")//文档主页【简介】栏参数
                .termsOfServiceUrl("127.0.0.1:8088")//文档主页【服务Url】栏参数
                .version("2.0")//文档主页【版本】栏参数
                .build();
    }

    /**
     * @Description: 设置swagger文档中全局参数  请求接口时可传可不传
     * @return: java.util.List<springfox.documentation.service.Parameter>
     */
    private List<Parameter> setHeaderToken() {
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder parameterBuilder = new ParameterBuilder();
        parameterBuilder
                .name("token")//参数名称
                .description("用户TOKEN")//参数介绍
                .modelRef(new  ModelRef("string"))//参数类型
                .parameterType("header")//请求类型
                .required(false).build();//是否必传
        pars.add(parameterBuilder.build());

        ParameterBuilder parameterBuilder1 = new ParameterBuilder();
        parameterBuilder1
                .name("test")
                .description("测试全局参数")
                .modelRef(new  ModelRef("string"))
                .parameterType("header")
                .required(true).build();
        pars.add(parameterBuilder1.build());
        return pars;
    }
}

2、接口案例

编写一个Controller测试

@RestController
@RequestMapping("/test")
@Api(tags = {"Swagger测试Controller"})
public class SwaggerController {


    @ApiOperation(value = "测试接口",notes = "接口描述")
    @PostMapping
    public ResponseEntity<String> test(@RequestBody TUser tUser){
        System.out.println(tUser);
        return ResponseEntity.ok("SUCCESS");
    }
}

3、效果

请求地址为:IP:端口/doc.html
效果图如下:
在这里插入图片描述

三、注解

1、@Api

@Api: 作用在类上,标识该类为一个接口组

参数作用
tags描述该类,在文档上会已该参数命名显示。

【实例】:

在这里插入图片描述

【效果】:
在这里插入图片描述

2、@ApiOperation

@ApiOperation:作用在被【@Api】标记类下的方法上,标识该方法,并在文档上显示在对应的接口组下

参数作用
value接口命名,在文档上会已该参数命名显示。
notes描述该接口,在文档上会已该参数命名显示。

【实例】:
在这里插入图片描述
【效果】:

在这里插入图片描述

3、@ApiModelProperty

@ApiModelProperty:作用属性参数上,描述该属性。

参数作用
value描述该属性。
required是否必传,默认为false。该参数只支持form-data类型请求,不支持json格式。

【实例】:
在这里插入图片描述
【form-data效果】:
在这里插入图片描述
【json效果】:
在这里插入图片描述

4.@ApiImplicitParam和@ApiImplicitParams

参数作用
paramType请求类型
dataType数据类型
name参数名字
value参数说明

@ApiImplicitParam: 单字段标记,作用与单独得请求参数上,该注解需要写在方法上`

【实例图】:
在这里插入图片描述
【实际效果】:
在这里插入图片描述
@ApiImplicitParams: 多个单字段标记,作用与多个单独得请求参数上,该注解需要写在方法上。
【实例图】:

在这里插入图片描述
【实际效果】:
在这里插入图片描述


总结

本文主要记录如何在SpringBoot中集成Swagger2文档,并介绍了一些常用注解及注解的常用参数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值