2012-02-13 44 views
3

作爲api調用的一部分進行自動通知(電子郵件/短信/等)是不好的做法嗎?或者應該將其與核心功能分開。rest api design - >電子郵件通知

說我更新項目狀態,並希望向所有觀看該項目的用戶發送通知。 我可以通過更新調用來做到這一點,還是應該將其分解爲其他通知機制?有什麼想法嗎?如果從通話中進行,我想每個相關的方法都需要跳過發送通知的選項。

回答

3

我會升起event,ProjectUpdated,您可以將它添加到您的消息系統(數據庫可以解決,或rabbitmq,msmq ...),並且此事件的使用者將發送電子郵件。

7

我想添加到Rafael Mueller的回覆中,發現RESTful接口和實現機制之間存在差異。

就RESTful接口而言​​,這裏是我的想法。假設您使用「PUT/project/123/status」來更新項目狀態。無論電子郵件是否發送,都取決於您的應用程序的價值主張。也許這就是你想要讓自己與競爭對手脫穎而出的方式。

比方說,您支持發送電子郵件,但您希望在逐個呼叫的基礎上爲客戶提供控制權。我會選擇一個可選的HTTP頭或請求體的可選屬性,無論是JSON或XML或其他任何東西。

一旦你允許電子郵件項目狀態的變化,我會建議設計一個指定的端點來觸發電子郵件更新按需。像「POST /項目/ 123 /狀態/發送電子郵件」。這樣你的客戶就不會自己一腳投籃了:如果他們忘記在項目狀態更新期間發送電子郵件,或者只是改變主意,他們總是可以稱之爲「發送電子郵件」。