@ApiResponses(value = {
@ApiResponse(code = 200, message = "Perfect") })
public void getLabel(@QueryParam("orderItemsId") String orderItemsId,HttpServletRequest httpServletRequest,HttpServletResponse response) {
String dataDirectory = httpServletRequest.getSession().getServletContext().getRealPath("/WEB-INF/files/label.pdf");
Path file = Paths.get(dataDirectory);
if (Files.exists(file))
{
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename=\"label.pdf\"");
try
{
Files.copy(file, response.getOutputStream());
response.getOutputStream().flush();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
我正在使用springfox-swagger2 - 版本2.5.0与springfox-swagger-ui - 版本2.5.0。
没有内容 - 处理标题swagger无法在swagger-ui中同步输出文件,它显示二进制形式的数据(我猜)有点破坏,而有了这个标题,我在ResponseBody中获得了一个链接,它也下载了pdf但是与swagger-ui同步的腐败形式相同。
我做了一项研究,它表明我们需要在响应link中提供数据类型:“file”。但@ApiResponse不包含任何数据类型字段。虽然它有响应的字段,但我不确定要给予什么类 八位字节输出。我尝试过OutputStream,但它不起作用。
编辑:Swagger UI不支持下载文件。而如果通过其他来源调用相同的网址将完成这项工作。