REST API设计 -> 电子邮件通知

4

在API调用中自动发送通知(电子邮件/短信等),这是不好的做法吗?还是应该将其与核心功能分开。

比如说,我更新了项目状态,并希望向所有关注该项目的用户发送通知。我可以在更新调用中完成这个操作,还是应该将其分解成其他通知机制?有什么想法吗?如果从调用中完成,我想每个相关方法都需要一个选项来跳过发送通知。

2个回答

7
我想补充一下 Rafael Mueller 的回答,RESTful 接口和实现机制是有区别的。
就 RESTful 接口而言,我的想法如下。比如你要用 "PUT /project/123/status" 更新项目状态,是否发送电子邮件取决于你的应用价值主张。也许这样可以让你与竞争对手区分开来。
假设你支持发送电子邮件,但你想让客户在每次调用时都有控制权。我会选择使用可选的 HTTP Header 或者请求体中的可选属性(JSON、XML 或其他格式)。
一旦你允许电子邮件的可变性,我建议设计一个指定的端点来根据需要触发电子邮件更新。类似于 "POST /project/123/status/send-email"。这样你的客户就不会自己给自己挖坑:如果他们在项目状态更新时忘记了发送电子邮件,或者改变了想法,他们总是可以调用 "send-email" 来发送邮件。

3
我会提出一个event,名为ProjectUpdated,你可以将其添加到你的消息系统中(可以使用数据库、rabbitmq、msmq等),当此事件被消费者接收时,将发送电子邮件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接