2017-10-09 109 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請求。