2017-10-09 106 views
2

我有一个REST API,具有用于注册用户的POST端点。不过,我也想自动发送一封欢迎邮件,但我认为将其作为POST请求的副作用将会是一个糟糕的设计。到目前为止,我想出了三个选项:REST API欢迎电子邮件最佳实践

  1. 有另一个端点,其浏览器分别调用启动 欢迎电子邮件发送。我不知道 (GET/POST?)会是什么情况,并且由于 电子邮件地址必须重新发送,所以它效率低下且容易被滥用。
  2. 在请求正文中有一个可选的 “sendWelcomeEmail”字段。
  3. 与2相同,但在查询参数。

也许这是主观的,但以上哪一项是最佳实践?我觉得他们中的任何一个都不适合这个法案,所以我们欢迎任何其他建议。

+4

“POST”请求有副作用是完全可以接受的! – Evert

+0

@Evert感谢您的输入!你认为三种方法中哪一种是最好的方法? – Akababa

+0

@akakaba,我在我的回答中澄清了一点。希望这可以为你解决 – Evert

回答

3

有一个POST请求有副作用是好的。

我认为这将是一个很好的'最佳实践'。这里的假设是你有一个“用户”资源,代表你的资源列表。

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

这则是这样的:

POST /users 
Content-Type: application/json 

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

这是完全正常的服务器相同的HTTP请求时自动发送欢迎电子邮件。没有必要为此创建第二个端点。

所以我的建议是不是有第二个HTTP请求。