GetMapping 使用 Spring Boot 生成 CSV 文件
GetMapping to produce CSV file using Spring Boot
我正在编写一个 spring 休息方法以从数据库中获取详细信息并将其设置在响应 POJO 中,然后 return 它。当前,当使用 POSTMAN 或 RC 像带有数据的可下载 CSV 文件一样点击 URL 时,我需要以 CSV 格式而不是默认 json 生成此响应。我用谷歌搜索了很多网站,但不确定其中的逻辑。
- 我们是否需要编写业务逻辑来将 pojo class 值转换为 csv 格式或 spring 是否有任何转换机制?
- Produces = "text/csv" 在很多地方都提到了,这个转换响应正确吗?
目前我还没有编写任何 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);
}
这里的响应是为 return 提供 pojo 格式的所有数据的响应,如果我们不在注释中给出生成,那么默认情况下 spring 将 return 响应json。有人可以指导我吗?提前致谢。
仅仅使用 @GetMapping
和 produces="text/csv"
是不够的。它只负责设置响应头Content-Type: text/csv
.
您需要将响应添加为参数 HttpServletResponse response
,将您的 POJO
转换为有效的 csv
文件,然后才写入 csv
文件进入 HttpServletResponse
.
我正在编写一个 spring 休息方法以从数据库中获取详细信息并将其设置在响应 POJO 中,然后 return 它。当前,当使用 POSTMAN 或 RC 像带有数据的可下载 CSV 文件一样点击 URL 时,我需要以 CSV 格式而不是默认 json 生成此响应。我用谷歌搜索了很多网站,但不确定其中的逻辑。
- 我们是否需要编写业务逻辑来将 pojo class 值转换为 csv 格式或 spring 是否有任何转换机制?
- Produces = "text/csv" 在很多地方都提到了,这个转换响应正确吗?
目前我还没有编写任何 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);
}
这里的响应是为 return 提供 pojo 格式的所有数据的响应,如果我们不在注释中给出生成,那么默认情况下 spring 将 return 响应json。有人可以指导我吗?提前致谢。
仅仅使用 @GetMapping
和 produces="text/csv"
是不够的。它只负责设置响应头Content-Type: text/csv
.
您需要将响应添加为参数 HttpServletResponse response
,将您的 POJO
转换为有效的 csv
文件,然后才写入 csv
文件进入 HttpServletResponse
.