REST API欢迎邮件最佳实践

3
我有一个REST API的POST端点,用于用户注册。然而,我还想自动发送欢迎电子邮件,但我认为将其作为POST请求的副作用是不好的设计。到目前为止,我想出了三个选项:
  1. 设置另一个端点,浏览器单独调用以启动电子邮件发送。我不知道它是什么(GET/POST?),这也有些低效和容易被滥用,因为必须再次发送电子邮件地址。
  2. 在请求体中设置可选的“sendWelcomeEmail”字段。
  3. 与2相同,但在查询参数中设置。
也许这是主观的,但以上哪个是最佳实践?我感觉没有一个完全符合要求,所以欢迎任何其他建议。

4
一个POST请求具有副作用是完全可以接受的! - Evert
@Evert 感谢您的建议!您认为这三种方法中哪一种是最好的呢? - Akababa
@akakaba,我在我的回答中澄清了一些内容。希望这能解决你的问题。 - Evert
1个回答

3

允许POST请求产生副作用是可以接受的。

我认为这是一种很好的“最佳实践”。这里的假设是您有一个表示资源列表的“用户”资源。

通常,POST将在“集合”资源上使用,以创建集合中的新条目。

然后就会变成这样:

POST /users
Content-Type: application/json

{
   "firstName": "foo",
   etc...
}

服务器在同一HTTP请求期间自动发送欢迎电子邮件是完全可以的。没有必要为此创建第二个端点。

因此,我的建议是不要进行第二个HTTP请求。


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