reactive-programming - 如何包裹助焊剂在响应实体中
问题描述
我需要我的端点以以下 json 格式返回数据:
{
"code": "SUCCESS",
"message": "SUCCESS",
"errors": null,
"data": []
}
这是我的控制器代码:
@GetMapping(value = "/productSubcategories", produces = MediaType.APPLICATION_JSON_VALUE)
public Flux<MyDTO> getMyObjects() {
return myObjectService.getAll()
.map(myObject -> modelMapper.map(productSubcategory, MyObject.class));
}
将所有 MyDTO 对象包装在 json 响应的“数据”部分中的最佳方法是什么?
解决方案
我不确定你想要实现什么,但我认为你需要collectList()
@GetMapping(value = "/productSubcategories", produces = MediaType.APPLICATION_JSON_VALUE)
public Mono<ResponseEntity> getMyObjects() {
return myObjectService.getAll()
.map(myObject -> modelMapper.map(productSubcategory, MyObject.class)) // here your have Flux<MyObject>
.map(obj -> modelMapper.map(obj, MyDTO.class)) // lets assume that here is conversion from MyObject to MyDTO - Flux<MyDTO>
.collectList() // now you got Mono<List<MyDTO>>
.map(dtos -> ResponseEntity.status(HttpStatus.OK).body(dtos));
}
推荐阅读
- r - 无法发布闪亮的应用程序
- django-cms - 使用 Django CMS 在网页中添加文本框和组合框
- json - 尝试解析 JSON 时,Spring RestTemplate 响应正文为空
- css - SASS 值变量的使用:最佳实践
- javascript - Internet Explorer 11:打印功能创建空白页
- c# - C# DataGridView 动态渐变
- python - 错误:UnknownTimezoneWarning:tzname IST 已识别但无法理解
- firefox - 在 Puppeteer 中对 Firefox 的 setRequestInterception 支持
- linux - from where rpm query search 和 from where yum list search
- c# - Html ActionLink 不会将我重定向到另一个控制器并查看