我有一个方法,它将InputStream作为InputStreamResource返回,当我让swagger生成文档时,它表示返回类型是InputStreamResource。如何更改此设置,以便文档中的返回类型为InputStream?
@ApiOperation()
@RequestMapping(value = "/item/{id}", produces = "application/octet-stream", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> getStream(
@PathVariable(value = "id") String id,
HttpServletResponse response
) {
InputStream stream = null;
try {
stream = getData(id);
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(new InputStreamResource(stream));
} catch (Exception e) {
IOUtils.closeQuietly(stream);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return null;
}
}
答案 0 :(得分:1)
试试这个:
@ApiOperation(response = InputStream.class)
根据文件:
响应:来自操作的默认响应类
答案 1 :(得分:1)
好吧,我不认为回归InputStream
会为您的消费者增加很多价值。输入流内部是数据,这是他们最关心的内容。使用InputStream确实可以减轻servlet上下文中的服务负担,但是在一天结束时,消费者并不关心。
您可以为数据建模吗?它是一个字符串还是一个复杂的对象?也许一个字节数组?那最好描述一下。