首页 > 解决方案 > 在 RestController 中返回多个对象/dto 的最佳实践

问题描述

在查看大量有关 Spring Boot 中的 Rest API 的文章时,我注意到他们中的大多数人在其控制器中的每个方法只使用一种类型的对象。所以它会是这样的:

@GetMapping("/posts")
    public ResponseEntity<List<PostDto>> readPosts() {
        return ResponseEntity.ok().body(
                someService.getAll()
        );
}

然而,在现实生活场景中,我们需要传递多个不同类型的对象/列表来提供客户所需的信息。我的问题很简单;如何在 Restful 服务中实现这一目标?

标签: springspring-bootrestviewdto

解决方案


您可以使用任何 java 映射器(MapStruct、ModelMapper、...)将您的实体映射到 DTO 并在映射后返回 DTO。

MapStruct 教程

        @GetMapping("/posts")
        public ResponseEntity<?> readPosts() {
           List<PostDto> dtos = someMapper.map(someService.getAll());  
          return ResponseEntity.ok(dtos);
        }

}


推荐阅读