Springboot整合Swagger

swagger是一个用于生成服务器接口的规范性文档、并能够对接口进行测试的工具

1. 整合swagger
1.1 添加依赖
  • swagger2
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
  • swagger UI
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
1.2 配置(java配置方式)
  • 创建config目录以及SwaggerConfig配置类
    在这里插入图片描述
  • 编写SwaggerConfig类
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    /**
     * swagger会帮组我们生成文档
     * 1. 配置生成的文档信息
     * 2. 配置生成的规则
     */

    /*Docket封装接口文档信息*/
    @Bean
    public Docket getDocket() {

        // 创建封面信息对象
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();

        // 设置文档标题、描述、联系人
        apiInfoBuilder.title("平台接口说明文档")
                .description("此文档说明了平台后端接口规范")
                .version("v 1.0.0")
                .contact(new Contact("chen_cheng", "www.chen_cheng.com","chen_cheng@qq.com"));

        ApiInfo apiInfo = apiInfoBuilder.build();

        // 指定文档风格
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo) // 指定生成的文档中的封面信息;文档标题、版本、作者
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.computerskills.competition.controller"))
                .paths(PathSelectors.any())
                .build();

        return docket;
    }
 }

  • 访问swagger接口文档

http://localhost:8080/swagger-ui.html
在路径后添加swagger-ui.html即可

2. swagger注解说明

swagger提供了一套注解,可以对每个接口进行详细说明

  • @Api类注解,在控制器类添加此注解,可以对控制器类进行功能说明
    比如:
    在RoleController类添加:
@Api(value = "提供添加角色、查询角色的功能", tags = "角色管理")
  • @ApiOperation方法注解,说明接口方法的作用
    比如:
    在RoleController类中的方法添加:
@ApiOperation("添加角色接口")
  • @ApiImplicitParams@ApiImplicitParam方法注解,说明接口方法的参数
    比如:
    在RoleController类中的方法添加:
 @ApiImplicitParams({
         @ApiImplicitParam(dataType = "string", name = "rName",value = "角色名称",required = true),
         @ApiImplicitParam(dataType = "string", name = "rDesc",value = "角色描述",required = false,defaultValue = "")
 })
  • @ApiModel@ApiModeProperty 当接口参数和返回值为对象类型时,在实体类中添加注解说明
    比如:
    在Role类中的方法添加:
/**
 * 角色信息
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel(value = "Role对象", description = "角色信息")
public class Role {

    @ApiModelProperty(dataType = "int",required = false)
    private int rId;
    @ApiModelProperty(dataType = "string",required = true,value = "角色名称")
    private String rName;
    @ApiModelProperty(dataType = "string",required = false,value = "角色描述信息")
    private String rDesc;
}
  • @ApiIgnore接口方法注解,添加此注解的方法将不会生成到接口文档中
    比如:
    在RoleController类中的addRole方法添加:
@ApiIgnore
3.swagger-ui插件

swagger默认界面:
在这里插入图片描述
默认访问路径:http://localhost:8080/swagger-ui.html

修改swagger文档界面:

  • 导入依赖
 <dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>
  • 访问路径
    http://localhost:8080/doc.html#/
  • 界面
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值