出问题的代码形式如下代码所示
@GetMapping(value = "/getPage")
@ApiOperation(value = "通过对象特征获取对象列表分页")
@ApiResponses(@ApiResponse(code = 200, message = "处理成功" , response = Result.class))
public Result<IPage<User>> getPage(
@RequestParam(value = "pageNo") Integer pageNo,
@RequestParam(value = "pageSize") Integer pageSize,
@ModelAttribute User user) {
//业务代码
}
乍一看好像没啥问题,但是在swaggerUi
中response body无法显示IPage<User>
,原因出在返回值这个Result<>
泛型上,由于泛型的特殊性,如果指定 response = Result.class
,swagger会默认识别泛型类型为Object
类型。
解决方法就是删除response = Result.class
这段代码,让swagger自动识别泛型的类型,手动指定response类型反而会出问题,或者整个删除
@ApiResponses(@ApiResponse(code = 200, message = "处理成功" , response = Result.class))
这样在swagger ui中就能正确渲染出泛型类型的json串了。
注意:本文归作者所有,未经作者允许,不得转载