通常在项目中会遇到 “批量删除“类似功能,前端传入参数类型为数组,我们接口如何定义,这个问题当时也是困扰了我好久,各种查询最终解决了问题。以下带入一段代码:
@ApiOperation(value = "批量删除购物车明细")
@DeleteMapping
@ApiImplicitParam(name="shopCartIds",value = "商品shopCartIds",required = true,allowMultiple = true,dataType = "Long",paramType="query")
public BaseResult delete(@ApiParam(value = "商品shopCartIds") @RequestParam("shopCartIds") List<Long> shopCartIds);
注意:
springboot整合swagger时可以传递多种形式的参数: 1:基本类型;2:对象;3:集合;4:数组; 在传递list集合或者对象时容易出现问题, 一般来讲是dataType类型有String/int两种,但是如果传递的是list集合,就可能导致无法测试接口; 我的ID是Long类型,将ID集合定义为String类型,拿到集合传到后台在转化为Long类型就行了。 可以将dataType改为String;其实dataType = "long"也是可以的。 allowMultiple=true————表示允许多个值,也就是是数组格式的参数; dataType = "Long" ————表示数组中参数的数据类型
展示: