SpringBoot整合Swagger2+Knife4j,注解使用

Source

SpringBoot整合Swagger2+Knife4j,注解使用


前言

swagger和postman都是后端编写的测试接口使用方式,由于实际开发的需求和使用习惯的不同,还是有些差异![在这里插入图片描述](https://img-blog.csdnimg.cn/2b8cf353b1f3454b983355793c53c1e9.png


一、swagger是什么?

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。 PS:Swagger 遵循了 OpenAPI 规范,OpenAPI 是 Linux 基金会的一个项目,试图通过定义一种用来描述 API 格式或 API 定义的语言,来规范 RESTful 服务开发过程。 Swagger 官网地址:https://swagger.io/Swagger 有什么用?从上述 Swagger 定义我们不难看出 Swagger 有以下 3 个重要的作用:将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;当接口更新之后,只需要修改代码中的 Swagger 描述就可以实时生成新的接口文档了,从而规避了接口文档老旧不能使用的问题;通过 Swagger 页面,我们可以直接进行接口调用,降低了项目开发阶段的调试成本。

在这里插入图片描述

二、使用步骤

1.引入库

导入两个依赖即可

<!--springfox swagger官方Starter-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.1</version>
</dependency>

2.使用swagger的相关注解

代码如下(示例):

@AutoLog(value = "公司入驻申请-分页列表查询")
    @ApiOperation(value = "公司入驻申请-分页列表查询", notes = "公司入驻申请-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(AdmissionApplication admissionApplication,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
    
      
        QueryWrapper<AdmissionApplication> queryWrapper = QueryGenerator.initQueryWrapper(admissionApplication, req.getParameterMap());
        Page<AdmissionApplication> page = new Page<AdmissionApplication>(pageNo, pageSize);
        IPage<AdmissionApplication> pageList = admissionApplicationService.page(page, queryWrapper);
        return Result.OK(pageList);
    }

总结

swagger注解 说明
@Api 对请求类的说明
@ApiOperation 方法的说明
@ApiImplicitParams 方法参数的说明
@ApiImplicitParam 用于指定单个参数的说明
@ApiResponses 用于方法返回值的说明
@ApiResponse 用于指定单个返回值的说明
@ApiModel 用于javabean类上,说名javabean整体的用途
@ApiModelProperty 用于javabean类的属性上,说名此属性的含义

以上就是今天要讲的内容,本文仅仅简单介绍了swagger注解的使用。