休息 API 并附上 Json 和一个 csv 文件
Rest API with both Json and a csv file as attachment
我们能否同时提供 Json 响应和 csv 文件作为 Rest 服务的附件?
我写了如下代码,但我也确定它不会起作用。
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();
第二个 setter 用于实体文件,基本上覆盖了我之前作为实体插入的 json 内容。所以请推荐。
对,没错,一个HTTP响应应该是单一类型的。如果您告诉您 return JSON,那么客户将期待 JSON object,而不是文件。同样,如果你说你 return 一个文件,它会期待一个文件。
客户端将根据响应 headers 中声明的 return 类型采取操作(例如:将 JSON object 映射到 class 实例等),因此明确这一点很重要。
在 springboot 的情况下,似乎最后一次调用 type
方法覆盖了之前的方法。
我们能否同时提供 Json 响应和 csv 文件作为 Rest 服务的附件?
我写了如下代码,但我也确定它不会起作用。
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();
第二个 setter 用于实体文件,基本上覆盖了我之前作为实体插入的 json 内容。所以请推荐。
对,没错,一个HTTP响应应该是单一类型的。如果您告诉您 return JSON,那么客户将期待 JSON object,而不是文件。同样,如果你说你 return 一个文件,它会期待一个文件。
客户端将根据响应 headers 中声明的 return 类型采取操作(例如:将 JSON object 映射到 class 实例等),因此明确这一点很重要。
在 springboot 的情况下,似乎最后一次调用 type
方法覆盖了之前的方法。