API应该负责发送邮件吗?

时间:2011-05-03 09:04:54

标签: php api email

我正在为公司开发API。他们有多个项目可以与API进行交互。

API将被发送一个要禁用的对象的id。如果此操作成功,则禁用该项目的用户应收到电子邮件。

我的问题是:API应该负责发送电子邮件,还是API应该返回该对象已被禁用,以及用于发送电子邮件的电子邮件地址?

非常感谢,期待您的意见。

2 个答案:

答案 0 :(得分:1)

像往常一样,我说这取决于。由于发送电子邮件的要求直接在API的范围内,并且API没有做太多其他事情,我不明白它为什么不发送它。但是,我会考虑某些级别的配置。

你可以提供一个简单地返回电子邮件地址(或使用一个标志)的函数和一个完成整个事情的函数(这也应该是可配置的,例如设置smtp服务器,电子邮件正文等)。如果您要合并电子邮件功能,请提供一个简单的功能/方法,只对对象操作便宜。

注意:在任何情况下,我都会尝试在开始开发之前与公司/客户解决这种需求歧义。它可以为您节省开发工作。

答案 1 :(得分:0)

问题不在于API是否应该在一般情况下发送电子邮件,而是您正在开发的禁用该对象的系统是否应该负责发送电子邮件。这取决于许多因素,例如:

  1. 禁用某个对象但是尚未发送电子邮件是否合法?由于分担责任,其他系统可能无法发送电子邮件?可能电子邮件地址无效或邮件服务器已关闭。这种不一致会不会造成任何灾难性后果?如果是这样,电子邮件应该由您的对象禁用系统发送。
  2. 这两个系统中的任何一个是否已经负责发送其他电子邮件?如果是这样,也许所有电子邮件发送都应该在那里完成。
  3. 在一天结束时,由于不同的原因,两种解决方案在某种程度上可能是“正确的”。唯一明显不好的设计是让你的系统回调到另一个系统,因为这会产生循环依赖。