【发布时间】:2021-11-23 01:06:52
【问题描述】:
我目前有以下控制器方法(有点简化,只显示相关部分):
@PostMapping(...)
...
public ResponseEntity<List<PresignedUrlsResponse>> getPresignedUrlBatch(@Valid @RequestBody PresignedUrlsRequest urlsRequest) {
List<PresignedUrlsResponse> presignedUrlResponses = urlsRequest.getRequests().stream().map(request -> {
// TODO: put this in it's own mapping
String url = this.mediaService.getPresignedUrl(request.getObjectId(), request.getBucket());
PresignedUrlsResponse response = new PresignedUrlsResponse();
response.setId(request.getId());
response.setUrl(url);
return response;
}).collect(Collectors.toList());
return ResponseEntity.ok().body(presignedUrlResponses);
}
正如 TODO 中提到的,我想简化这个控制器方法并添加一个映射器。例如,我只习惯于映射来自 db 调用的请求(在其中我将获得一个实体列表),而不是在必须为项目列表调用服务方法时。 有这方面的最佳做法吗?
【问题讨论】: