knife4j调试分页查询接口时,请求参数挤在一行

问题描述:

在书写分页查询的业务逻辑代码时,按照开发规范,先创建了相应的DTO,在Controller层中整体传参,程序正常运行,但打开knife4j进行调试时,发现参数挤在一块儿,既不美观,也造成了调试时的不便:

相关代码:

//DTO部分
@Data
@Schema(description = "管理员分页查询时传递的数据模型")
public class AdministratorPageQueryDTO implements Serializable {

    @Schema(description = "姓名")
    private String name;

    @Schema(description = "页码")
    private Integer pageNum;

    @Schema(description = "当前页要展示的数据条数")
    private Integer pageSize;

}




//控制层代码
@GetMapping("/page")
@Operation(summary = "管理员分页查询")
public Result<PageBean> pageQuery(AdministratorPageQueryDTO administratorPageQueryDTO){
    log.info("管理员分页查询:{}", administratorPageQueryDTO);

    PageBean pageBean = administratorService.pageQuery(administratorPageQueryDTO);

    return Result.success(pageBean);
}

解决方案:

原因可能是knife4j版本的问题,当前我使用的是knife4j-openapi3,之前使用knife4j3.0.2时未出现此问题。

既然不是我们操作的原因,那么解决方案便从简考虑。因此我选择不传递DTO了,先传零散的数据,再在controller层方法内部封装成DTO,具体业务代码如下:

@GetMapping("/page")
@Operation(summary = "管理员分页查询")
public Result<PageBean> pageQuery(@RequestParam(required = false) String name,
                                  @RequestParam(defaultValue = "1") Integer pageNum,
                                  @RequestParam(defaultValue = "5") Integer pageSize){

    AdministratorPageQueryDTO administratorPageQueryDTO = new AdministratorPageQueryDTO();
    administratorPageQueryDTO.setName(name);
    administratorPageQueryDTO.setPageNum(pageNum);
    administratorPageQueryDTO.setPageSize(pageSize);

    log.info("管理员分页查询:{}", administratorPageQueryDTO);

    PageBean pageBean = administratorService.pageQuery(administratorPageQueryDTO);

    return Result.success(pageBean);
}

运行调试,问题得到解决:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值