想问一下当有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);
}
您当然可以对 Get 请求使用相同的 DTO。它只是将被序列化为一个 JSON 对象,然后您可以从前端的响应中映射它。
你可以对其他请求类型做同样的事情,只要它有你需要的所有字段。
话虽如此,为每种情况定义一个单独的 DTO 可能会更好,因为您通常不想发送比所需数据多或少的数据。只是我的两分钱。