带有Json和csv文件作为附件的java Rest API
我们可以在Rest服务中提供Json响应和csv文件作为附件吗
我已经写了下面这样的代码,但我也确信它不会起作用
ResponseBuilder responseBuilder = null;
responseBuilder = Response.status(200).type(MediaType.APPLICATION_JSON)
.entity(parseOrganizations(getOrganizationsResponseMashery(limit, offset)));
responseBuilder.type(MediaType.TEXT_PLAIN).entity(file).header("Content-Disposition", "attachment; filename=Organizations.csv");
return responseBuilder.build();
entity with file的第二个setter基本上覆盖了我之前作为entity插入的json内容。所以请提出建议
# 1 楼答案
是的,没错,HTTP响应应该是单一类型的。如果您告诉您返回JSON,那么客户端将需要一个JSON对象,而不是一个文件。同样,如果你说你返回了一个文件,它也会期待一个文件
客户机将根据响应头中声明的返回类型执行操作(例如:将JSON对象映射到类实例等),因此这一点很重要,没有歧义
在springboot的情况下,对
type
方法的最后一次调用似乎覆盖了前一次调用