springboot根据不同的controller返回不同的pojos

问题描述 投票:0回答:1

想问一下当有controllerA的时候要显示id,emailTitle,emailBody,有controllerB的时候要显示emailBody和对应的Api。请问,如果只有一个pojo或dto,是否可以实现这个?

@Data
public class EmailTemplateDto {

    private Long id;

    private String emailTitle;

    private String emailBody;

    private String correspondingApi;
}
@RestController
@RequestMapping("/email/template")
public class MailController {

    @Autowired
    private IEmailTemplateService emailTemplateService;
    
    //ControllerA
    @GetMapping
    public ResponseEntity<Object> getAllEmailTemplates() {
        return emailTemplateService.getAllEmailTemplates();
    }
    
    //ControllerB
    @GetMapping("/{id}")
    public ResponseEntity<Object> getEmailTemplateById(@PathVariable Long id) {
      
}  return emailTemplateService.getEmailTemplateById(id);
    
}
java spring-boot response dto pojo
1个回答
0
投票

您当然可以对 Get 请求使用相同的 DTO。它只是将被序列化为一个 JSON 对象,然后您可以从前端的响应中映射它。

你可以对其他请求类型做同样的事情,只要它有你需要的所有字段。

话虽如此,为每种情况定义一个单独的 DTO 可能会更好,因为您通常不想发送比所需数据多或少的数据。只是我的两分钱。

© www.soinside.com 2019 - 2024. All rights reserved.