我正在尝试在现有的JAX-RS REST项目中设置Swagger来记录我们的API .
对于我们接受JSON请求体的操作,我们一直在使用这个习语:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value="Some operation")
@ApiImplicitParams(value={
@ApiImplicitParam(name="val1", value="Input 1", dataType="string", paramType="body"),
@ApiImplicitParam(name="val2", value="Input 2", dataType="string", paramType="body")
})
public Response login(Map<String, Object> request) { }
通过接收Map JAX-RS将JSON对象映射到映射中以按键名访问值 . 这很好,并且避免为每个这样的操作要求模型 .
但是,Swagger扫描此类操作并自动将Map包含为请求参数 . 我的意图是我在@ApiImplicitParams注释中正确定义参数 . 有没有办法让Swagger忽略Map并只使用@ApiImplicitParams中定义的参数?
1 回答
我遇到了同样的问题并使用了
这基本上隐藏了输出中的实际参数 . 注释来自