rest api design -> уведомление по электронной почте - PullRequest
3 голосов
/ 13 февраля 2012

Плохо ли делать автоматическое уведомление (электронная почта / смс / и т. Д.) Как часть вызова API?Или это должно быть отделено от основной функциональности.

Скажем, я обновляю статус проекта и хочу отправить уведомление всем пользователям, наблюдающим за проектом.Могу ли я сделать это с помощью вызова обновления или я должен разбить его на какой-нибудь другой механизм уведомлений?Какие-нибудь мысли?Если сделать это из вызова, я думаю, что каждый соответствующий метод должен был бы пропустить отправку уведомлений.

Ответы [ 2 ]

7 голосов
/ 14 февраля 2012

Я бы добавил к ответу Рафаэля Мюллера, что существует разница между интерфейсом RESTful и механикой реализации.

Что касается интерфейса RESTful, то здесь мои мысли. Допустим, вы обновляете статус проекта с помощью «PUT / project / 123 / status». Будет ли отправляться электронное письмо или нет, это зависит от ценности вашего приложения. Может быть, именно так вы хотите отличаться от своих конкурентов.

Допустим, вы поддерживаете отправку электронных писем, но хотите передать управление клиенту по вызову. Я бы выбрал необязательный заголовок HTTP или необязательный атрибут тела запроса, будь то JSON, XML или что-то еще.

После того, как вы разрешили изменение статуса проекта по электронной почте, я бы посоветовал разработать специальную конечную точку для запуска обновления электронной почты по требованию. Что-то вроде «POST / project / 123 / status / send-email». Таким образом, ваш клиент не станет стрелять себе в ногу: если он забыл отправить электронное письмо во время обновления статуса проекта или просто передумал, он всегда может позвонить «отправить по электронной почте».

3 голосов
/ 13 февраля 2012

Я бы вызвал событие , ProjectUpdated, вы можете добавить его в свою систему обмена сообщениями (база данных может решить, или rabbitmq, msmq ...), и потребитель этого события отправит электронное письмо .

...