rest api design - >电子邮件通知

时间:2012-02-13 18:23:33

标签: rest

在api通话中执行自动通知(电子邮件/短信/等)是不好的做法吗?或者应该与核心功能分开。

假设我更新项目状态,并希望向观看项目的所有用户发送通知。 我可以从更新调用中执行此操作,还是应该将其分解为其他通知机制?有什么想法吗?如果从通话中做到这一点,我想每个相关方法都需要一个跳过发送通知的选项。

2 个答案:

答案 0 :(得分:7)

我想补充Rafael Mueller的回复,RESTful接口和实现机制之间存在差异。

就RESTful接口而言​​,这是我的想法。假设您使用“PUT / project / 123 / status”更新项目状态。无论是否发送电子邮件,都取决于您的应用程序的价值主张。也许这就是你想要从竞争对手中脱颖而出的方式。

假设您支持发送电子邮件,但您希望在逐个呼叫的基础上控制客户端。我会使用可选的HTTP标头或请求体的可选属性,无论是JSON还是XML或其他任何东西。

一旦你允许通过电子邮件发送项目状态的可变性,我建议设计一个指定的终点来按需触发电子邮件更新。像“POST / project / 123 / status / send-email”之类的东西。通过这种方式,您的客户不会陷入困境:如果他们忘记在项目状态更新期间发送电子邮件,或者只是改变主意,他们可以随时拨打“发送电子邮件”。

答案 1 :(得分:3)

我会提出一个event,ProjectUpdated,您可以将它添加到您的消息系统(数据库可以解决,或者是rabbitmq,msmq ...),并且此事件的消费者将发送电子邮件。< / p>