【发布时间】:2021-12-01 16:33:35
【问题描述】:
我正在创建 Spring Boot 应用程序并有一个端点,它可以在单个请求上执行 2 种类型的操作。
第一个动作 - 发送电子邮件 第二个动作 - 发送短信
控制器类
@Override
public ResponseEntity<Object> sendAction(Action act) {
try {
actionService.createAlert(act);
return new ResponseEntity<>("Alert is generated successfully.", HttpStatus.CREATED);
}catch (Exception e) {
log.error("Exception occured while generating alerts. " , e);
return new ResponseEntity<>("Exception occured while generating alert.", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
服务类:
@Override
public void createAlert(Action act) throws Exception {
try {
String isSuccess = emailService.sendEmail(act);
}catch (Exception e) {
smsService.sendSMS(act,"Email Failed"); // Is this correct way?
}
smsService.sendSMS(act, "Email Success");
}
在这种情况下,我无法向客户区分电子邮件和短信是否都成功或只是短信。
我应该如何处理?
提前致谢。
【问题讨论】:
-
什么时候发送短信?
-
它应该在电子邮件之后发送,甚至在电子邮件失败之后发送。我想知道我怎样才能让客户区分这个
-
sendAction()的主要任务是什么?这意味着电子邮件和 SMS 的四种成功/失败组合中的哪一种意味着整体成功,哪些是失败?告知客户端最终用户故障模式(错误文本)是否足够,或者客户端软件是否需要对可能的故障模式(响应对象)做出不同的响应?
-
@RalfKleberhoff 是的,有 4 种可能的情况。我需要通过文本向客户端发送正确的模式。我可以通过从控制器中的电子邮件/短信服务获得成功响应来做到这一点。但是有没有更好的方法呢?
标签: java spring spring-boot exception httpresponse