2012-02-13 9 views
3

apiコールの一部として自動通知(電子メール/ SMSなど)を行うのは悪い習慣ですか?または、コア機能から分離する必要があります。rest api design - > email notification

私はプロジェクトのステータスを更新し、プロジェクトを見ているすべてのユーザーに通知を送信するとします。 更新コールからそれを行うことはできますか、それとも他の通知メカニズムに分割する必要がありますか?何かご意見は?コールからそれを行う場合、私はそれぞれの関連するメソッドが通知の送信をスキップするオプションを必要とすると思います。

答えて

3

私はevent ProjectUpdatedを立ち上げ、あなたはメッセージングシステム(データベースが解決できる、またはrabbitmq、msmq ...)とこのイベントのコンシューマに追加して電子メールを送信します。

7

Rafful Muellerによるレスポンスに、RESTfulインターフェイスと実装の仕組みの違いが追加されます。

RESTfulインターフェイスに関する限り、私の考えはここにあります。プロジェクトステータスを「PUT/project/123/status」に更新するとしましょう。メールが送信されるかどうかは、アプリの価値提案に依存します。あなたが競合他社と差別化したいと思う方法かもしれません。

電子メールの送信をサポートしているが、コールごとにクライアントに制御を渡したいとします。私はオプションのHTTPヘッダー、またはJSONまたはXMLなど何でも要求本体のオプションの属性を使用します。

プロジェクトのステータスを電子メールで送信できるようにしたら、必要に応じて電子メールの更新を開始するように指定されたエンドポイントを設計することをお勧めします。 "POST/project/123/status/send-email"のようなものです。こうすることで、お客様のクライアントは足元で撃たれることはありません。プロジェクトステータスの更新中にメールを送信することを忘れた場合、または単純に心を変えた場合は、常に「send-email」を呼び出すことができます。

関連する問題