SpingBoot中使用Swagger快速生成接口文档


目录

一.Swagger快速上手

二.Swagger中的基本注解

三.使用Swagger进行测试


一.Swagger快速上手

Swagger是⼀个接⼝⽂档⽣成⼯具,它可以帮助开发者⾃动⽣成接⼝⽂档。当项⽬的接⼝发⽣变更时,Swagger可以实时更新⽂档,确保⽂档的准确性和时效性。Swagger还内置了测试功能,开发者可以直接在⽂档中测试接⼝,⽆需编写额外的测试代码。

使用起来也很简单,直接引入其依赖即可

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.2.0</version>
        </dependency>

依赖引入后即可进行相应的配置,如下就是一个简单的配置示例,你可以在这个配置项中声明接口文档的名称以及相关的描述,这些描述并不是必须的,可以省略。

@Configuration
public class SwaggerConfig {
    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("在线oj系统")
                        .description("在线oj系统接⼝⽂档")
                        .version("v1"));
    }
}

如果你使用的是微服务的架构,为了使该配置项在其他服务中也生效,则需要声明该配置项的位置。即如下图所示在 resource包下声明该配置类的路径。

然后启动项目,访问swagger-ui即可看见当前项目中接口的信息了

同时这些接口中也包含了自动测试的方法,我们点击即可一键进行测试


二.Swagger中的基本注解

为了使该接口文档更丰富,我们可以使用swagger为我们提供的一些基本注解来进行一些自定义的申明,以下是一些常用的注解

@Tag

介绍:⽤于给接⼝分组,⽤途类似于为接⼝⽂档添加标签。

⽤于:⽅法、类、接⼝。

常⽤属性:

name:分组的名称

 如下代码,就是使用了@Tag为整个Controller进行了统一的命名分组。

@RestController
@RequestMapping("/sysUser")
@Tag(name = "管理员用户API")
public class SysUserController {
    //... ...
}

@Operation

介绍:⽤于描述接⼝的操作。

⽤于:⽅法。

常⽤属性:

summary:操作的摘要信息。

description:操作的详细描述。

@Parameters

介绍:⽤于指定@Parameter注解对象数组,描述操作的输⼊参数。

⽤于:⽅法。

@Parameter

介绍:⽤于描述输⼊参数。

⽤于:⽅法。

常⽤属性:

name:参数的名称。

in:参数的位置,可以是 path、query、header、cookie 中的⼀种。

description:参数的描述。

@ApiResponse

介绍:⽤于描述操作的响应结果.

⽤于:⽅法。

常⽤属性:

responseCode:响应的状态码。

description:响应的描述。

就拿下面这个示例来说

  • @Operation注解就申明了这个接口是用来查询用户详情的
  • @Parameters注解表明了这个接口需要传入的参数,其中@parameter用于修饰每一个参数
  • @ApiResponse注解则申明了需要给前端返回怎么样的数据,状态码以及对应的信息
/**
 * 根据条件查询管理员用户
 *
 * @param userId
 * @param sex
 * @return
 */
@GetMapping("/detail")
@Operation(summary = "⽤⼾详情", description = "根据查询条件查询⽤⼾详情")
@Parameters(value = {
        @Parameter(name = "userId", in = ParameterIn.QUERY, description = "⽤⼾ID"),
        @Parameter(name = "sex", in = ParameterIn.QUERY, description = "⽤⼾性别")
})
@ApiResponse(responseCode = "1000", description = "成功获取⽤⼾信息")
@ApiResponse(responseCode = "2000", description = "服务繁忙请稍后重试")
@ApiResponse(responseCode = "3101", description = "⽤⼾不存在")
public R<SysUserVO> detail(@RequestParam(required = true) Long userId, @RequestParam(required = false) String sex) {
    return null;
}

 @Schema

介绍:⽤于描述数据模型的属性。

⽤于:⽅法、类、接⼝。

常⽤属性:

description:响应的描述。

如下是个实体类用来封装数据,使用了@Schema注解对字段进行了描述 

@Getter
@Setter
public class SysUserVO {
    
    @Schema(description = "用户账号")
    private String userAccount;
    
    @Schema(description = "用户昵称")
    private String nickName;
}

三.使用Swagger进行测试

Swagger还为我们提供了一个非常使用的功能就是对接口进行一键测试,通过这个功能,我们就不用自己写测试代码了。

我们只需要点击这里的 Try it out 即可一键自测。

 然后手动设置传递的参数,之后点击执行Execute即可

在下方也可以看见相应的结果




 本次的分享就到此为止了,希望我的分享能给您带来帮助,创作不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见

猜你喜欢

转载自blog.csdn.net/m0_69519887/article/details/141640953