spring - 在 RestController 中返回多个对象/dto 的最佳实践
问题描述
在查看大量有关 Spring Boot 中的 Rest API 的文章时,我注意到他们中的大多数人在其控制器中的每个方法只使用一种类型的对象。所以它会是这样的:
@GetMapping("/posts")
public ResponseEntity<List<PostDto>> readPosts() {
return ResponseEntity.ok().body(
someService.getAll()
);
}
然而,在现实生活场景中,我们需要传递多个不同类型的对象/列表来提供客户所需的信息。我的问题很简单;如何在 Restful 服务中实现这一目标?
解决方案
您可以使用任何 java 映射器(MapStruct、ModelMapper、...)将您的实体映射到 DTO 并在映射后返回 DTO。
@GetMapping("/posts")
public ResponseEntity<?> readPosts() {
List<PostDto> dtos = someMapper.map(someService.getAll());
return ResponseEntity.ok(dtos);
}
}
推荐阅读
- python - python django:如何修复错误提示:AttributeError at / 'Home' object has no attribute 'get'
- javascript - React history.push() 正在更新 url 但不呈现页面?
- javascript - 为什么我没有使用 Wappalyzer 在我的网站上检测到 Wordpress 和 Elementor?
- python - how to reslove TypeError: 'float' object cannot be interpreted as an integer
- perl - 在 @INC 中找不到 URI/Encode.pm - Centreon
- timer - 如何根据 esp32 arduino(步进电机控制器应用程序)的需要删除和重新启动硬件定时器(用于中断)
- ios-frameworks - 自定义框架:dyld:找不到符号:_$s11CryptoSwift7PaddingO5pkcs7yA2CmFWC
- node.js - 如何在 Node.js 中使用 Got 获得重定向的最终 url
- javascript - 如何存根 google-apis 方法?
- flutter - 表单的字段未初始化