swagger如何测试List类型参数
使⽤swagger 时,往往会⽤到类似下⾯这样的注解
@ApiImplicitParam(name = "id", value = "主键", dataType = "int", paramType = "query")
⽹上说这⾥的dataType 类型有String / int两种,其余的都是⽆⽤的。
但是如果需要传递的参数是List类型,应该怎么办?
⾸先直接在浏览器中输⼊⽹址,传递参数(xxx?idList=1,2,3)来测试,是没有问题的
在swagger中如果直接使⽤int,List<Integer> 这样的参数,会导致swagger⽆法测试接⼝,如下:
python json字符串转数组@ApiImplicitParam(name = "idList", value = "id列表", required = true, dataType = "int", paramType = "query")
后来我的⼀个复杂的做法是:把List的所有值传⼀个String类型的参数,⽤中括号包起来,最后再解析。形如xxx?idList=[1,2,3],可以实现效果,但是⽐较⿇烦
再后来突然发现⼀个很简单的解决办法
那就是去掉@ApiImplicitParam 注解(注:我的swagger 版本是2.8.0,)
⽐如:
@ApiOperation("批量查询课程信息")
public Result listXxxByIdList(@RequestParam(value = "idList") List<Long> idList) {...}
这样以后,测试的时候,就可以添加、删除List参数了,这个参数的类型是array[], 如下图:
可能是因为后来的swagger版本能够⾃动识别⽅法中的参数了,这样做的缺点只是没有中⽂描述⽽已
当然如果⾮要加上中⽂描述也是可以的,那就是使⽤@ApiParam注解,如下:
@ApiOperation("批量查询课程信息")
public Result listXxxByIdList(@RequestParam(value = "idList") @ApiParam(value = "id列表") List<Long> idList) {...}
原创⽂章,欢迎转载,转载请注明出处!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。