我正在编写一个spring rest方法来从数据库中获取详细信息并将其设置在响应POJO中然后返回它。目前,当使用POSTMAN或RC(如带有数据的可下载CSV文件)命中URL时,我需要以CSV而不是默认json生成此响应。我搜索了许多网站,但我不确定几个逻辑。
目前我还没有为CSV转换编写任何代码。
@GetMapping("/batch/export" , produces="text/csv")
public ResponseEntity<ApplicationResponse> getBatchDetails(
HttpServletRequest request) {
ApplicationRequest appRequest = ApplicationServiceMapper.mapRequestFromHttpRequest(request);
ApplicationResponse response = appService.getDBDetails(appRequest);
return new ResponseEntity<>(response, HttpStatus.OK);
}
这里的响应是服务以其pojo格式返回所有数据的响应,如果我们不在注释中给出产生,那么默认情况下spring将返回响应json。有人可以指导我吗?提前谢谢。
答案 0 :(得分:3)
仅使用@GetMapping
和produces="text/csv"
是不够的。它只负责设置响应标头Content-Type: text/csv
。
您需要将响应添加为参数HttpServletResponse response
,将您的POJO
转换为有效的csv
文件,然后编写csv
将文件存入HttpServletResponse
。